1 // { dg-do run { target c++14 } } 2 // { dg-options -w } 3 4 #include <cassert> 5 6 template<bool, typename _Tp = void>struct enable_if {}; 7 template<typename _Tp> struct enable_if<true, _Tp> { typedef _Tp type; }; 8 9 10 template<typename CharT, CharT... String> 11 typename enable_if<sizeof...(String) == 6, int>::type operator"" _script () { 12 return 5; 13 } 14 15 template<typename CharT, CharT... String> 16 typename enable_if<sizeof...(String) == 3, int>::type operator"" _script () { 17 return 3; 18 } 19 20 template<typename CharT, CharT... String> 21 typename enable_if<sizeof...(String) != 3 && sizeof...(String) != 6, int>::type operator"" _script () { 22 return 1; 23 } 24 25 int main () 26 { 27 assert ("hello!"_script == 5); 28 assert (u8"hi!"_script == 3); 29 assert ("hey!"_script == 1); 30 } 31