1 // { dg-do compile { target c++11 } } 2 // PR c++/50941 3 4 typedef decltype(sizeof(0)) size_type; 5 6 constexpr size_type 7 operator"" _len(const char*, size_type len) 8 { 9 return len; 10 } 11 12 constexpr size_type 13 operator"" _len(const wchar_t*, size_type len) 14 { 15 return len; 16 } 17 18 constexpr size_type 19 operator"" _len(const char16_t*, size_type len) 20 { 21 return len; 22 } 23 24 constexpr size_type 25 operator"" _len(const char32_t*, size_type len) 26 { 27 return len; 28 } 29 30 static_assert( ""_len == 0, "Ouch"); 31 static_assert(u8""_len == 0, "Ouch"); 32 static_assert( L""_len == 0, "Ouch"); 33 static_assert( u""_len == 0, "Ouch"); 34 static_assert( U""_len == 0, "Ouch"); 35 36 static_assert( "1"_len == 1, "Ouch"); 37 static_assert(u8"1"_len == 1, "Ouch"); 38 static_assert( L"1"_len == 1, "Ouch"); 39 static_assert( u"1"_len == 1, "Ouch"); 40 static_assert( U"1"_len == 1, "Ouch"); 41 42 static_assert( "123"_len == 3, "Ouch"); 43 static_assert(u8"123"_len == 3, "Ouch"); 44 static_assert( L"123"_len == 3, "Ouch"); 45 static_assert( u"123"_len == 3, "Ouch"); 46 static_assert( U"123"_len == 3, "Ouch"); 47