Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/cpp0x/udlit-template.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
// { dg-do run { target c++11 } } // Test user-defined literals. // Test template operator declaration and definition. #include <cassert> template<char...> int operator"" _abc(); template<> int operator"" _abc<>() { return -1; } template<> int operator"" _abc<'L','U','E'>() { return 42; } template<> int operator"" _abc<'6','6','6'>() { return 21; } void test1() { int i = operator"" _abc<'1','2','3'>(); assert(i == 45); int universal_meaning = operator"" _abc<'L','U','E'>(); assert(universal_meaning == 42); int b = operator"" _abc<'6','6','6'>(); int z = operator"" _abc<>(); assert(z == -1); int j = 123_abc; assert(j == i); int jb = 666_abc; assert(jb == b); } int main() { test1(); } template<char... Chars> int operator"" _abc() { return 42 + sizeof...(Chars); }