| // PR c++/51150 | |
| // { dg-do compile { target c++11 } } | |
| struct Clock { | |
| double Now(); | |
| }; | |
| template <class T> void Foo(Clock* clock) { | |
| const int now = clock->Now(); | |
| } | |
| template void Foo<float>(Clock*); | |
| template <class T> void Boo(int val) { | |
| const int now1 = (double)(val); | |
| const int now2 = const_cast<double>(val); // { dg-error "invalid" } | |
| const int now3 = static_cast<double>(val); | |
| const int now4 = reinterpret_cast<double>(val); // { dg-error "invalid" } | |
| } | |
| template void Boo<float>(int); |