2 // { dg-do compile { target c++11 } }
4 template <typename T> struct A
6 template <typename U> static char foo(U*, int* = 0);
7 static const bool value = sizeof(foo(static_cast<T*>(nullptr))) > 0;
10 template <bool b> struct B
12 static const bool value = b;
15 template <typename T> struct C
17 typedef B<A<T>::value> type;
21 void bar() noexcept(A<T>::value && C<T>::type::value) {}