// { dg-do run { target c++11 } } // Test user-defined literals. // Test simple operator declaration and definition. #include #include #include #include long double operator"" _v(long double); std::string operator"" _w(const char16_t*, size_t); unsigned operator"" _w(const char*); std::complex operator"" _i(long double y) { return std::complex(0.0L, y); } void test1() { long double x = operator"" _v(1.2L); assert(x == 2.2L); std::string s = operator"" _w(u"one", 3); assert(s == "boo"); unsigned u = operator"" _w("Hello, World!"); assert(u == 13U); std::complex i = operator"" _i(2.0); assert(i == std::complex(0.0, 2.0)); } int main() { test1(); } long double operator"" _v(long double x) { return x + 1.0L; } std::string operator"" _w(const char16_t*, size_t) { return std::string("boo"); } unsigned operator"" _w(const char* str) { return strlen(str); }