// PR c++/66572 | |
// { dg-do compile { target c++11 } } | |
// { dg-options "-Wlogical-op" } | |
struct false_type | |
{ | |
static constexpr bool value = false; | |
}; | |
struct true_type | |
{ | |
static constexpr bool value = true; | |
}; | |
template<typename T> | |
struct is_unsigned : false_type {}; | |
template<> | |
struct is_unsigned<unsigned> : true_type {}; | |
template<typename T1, typename T2> | |
bool foo() | |
{ | |
return is_unsigned<T1>::value && is_unsigned<T2>::value; | |
} | |
int main() | |
{ | |
foo<unsigned, unsigned>(); | |
} |