// 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);
