template struct s1 { typedef int type; }; template struct s2 { constexpr operator bool() const noexcept { return true; } }; template {}>::type> struct s3 {}; // previously failed compiling with: // "test.cpp", line 6: error: expression must have a constant value // template {}>::type>