1 // PR c++/59705
2 // { dg-do compile { target c++11 } }
3
4 struct HasIter {
5 typedef int * const_iterator;
6 };
7
8 struct NoIter {
9 };
10
11 template <typename T>
foo(const T &,typename T::const_iterator *)12 constexpr bool foo(const T &, typename T::const_iterator *)
13 {
14 return true;
15 }
16
17 template <typename T>
foo(const T &,...)18 constexpr bool foo(const T &, ...)
19 {
20 return false;
21 }
22
23 HasIter has_iter;
24 NoIter no_iter;
25
26 static_assert (!foo(no_iter, 0), "");
27 static_assert (foo(has_iter, 0), "");
28 static_assert (foo<HasIter>(has_iter, 0), "");
29