// { dg-do run { target c++11 } } // { dg-skip-if "requires hosted libstdc++ for cstring" { ! hostedlib } } // 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); }