2 template <typename _InputIterator> void __distance (_InputIterator);
3 template <typename _InputIterator>
4 void distance (_InputIterator, _InputIterator p2)
11 template <class Iterator> struct A
13 typedef typename Iterator::difference_type type;
15 template <class T> typename T::const_iterator end (T &);
16 template <class T> typename T::const_iterator begin (T &);
17 template <class T> struct D : A<typename T::const_iterator>
20 template <class T> typename D<T>::type distance (const T &p1)
22 distance (boost::begin (p1), boost::end (p1));
25 template <class IteratorT> class B
29 typedef IteratorT const_iterator;
33 typedef int storage_t[];
35 template <template <typename> class> struct G
37 G (const G &p1) { p1.m_fn1 ().m_fn1 (0); }
38 const F &m_fn1 () const
42 return *static_cast<const F *>(a);
49 virtual F *m_fn1 (void *) const;
51 template <typename> struct H;
54 typedef int difference_type;
56 boost::B<C> AllTransVideos ();
57 int b = boost::distance (AllTransVideos ());