// PR c++/14337 template struct Constraint; template <> struct Constraint { typedef int Result; }; template struct IsInt { static const bool value = false; }; template <> struct IsInt { static const bool value = true; }; template typename Constraint::value>::Result foo(T); template typename Constraint::value>::Result foo(T); template void bar() { foo(1); }