| // PR c++/41927 |
| // { dg-do compile { target c++11 } } |
| // { dg-options "-Wall" } |
| |
| // We were getting a spurious ||/&& warning about the enable_if with the |
| // source position of d1. |
| |
| template<typename Tp> |
| struct is_int |
| { static const bool value = true; }; |
| |
| template<bool, typename Tp = void> |
| struct enable_if |
| { }; |
| |
| template<typename Tp> |
| struct enable_if<true, Tp> |
| { typedef Tp type; }; |
| |
| template<typename Rep> |
| struct duration |
| { |
| duration() { } |
| |
| template<typename Rep2, typename = typename |
| enable_if<false || (true && is_int<Rep2>::value)>::type> |
| duration(const duration<Rep2>&) { } |
| }; |
| |
| int main() |
| { |
| duration<int> d0; |
| duration<int> d1 = d0; // { dg-warning "set but not used" } |
| } |
| |