// { dg-do run { target c++11 } } // Test user-defined literals. // Test simple operator declaration and definition in namespaces. #include #include namespace Long { long double operator"" _LL(long double); } namespace Short { short operator"" _SS(long double x) { return std::fmod(x, static_cast(std::numeric_limits::max())); } } void test1() { long double x = Long::operator "" _LL(1.2L); using namespace Short; short s = operator"" _SS(1.2L); short s2 = 1.2_SS; } int main() { test1(); } namespace Long { long double operator"" _LL(long double x) { return x + 2.0L; } }