Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/cpp0x/constexpr-is_literal.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 compile { target c++11 } } #include <type_traits> #define IS_LIT(T) (std::is_literal_type<T>::value) #define SA(X) static_assert (X, #X) #define YES(T) SA(IS_LIT(T)) #define NO(T) SA(!IS_LIT(T)) enum E1 { }; enum class E2 { }; struct Literal {}; struct NotLiteral { ~NotLiteral(); }; YES(int); YES(int[]); YES(int[3]); YES(double); YES(void *); YES(decltype (nullptr)); YES(int Literal::*); YES(void (Literal::*)()); YES(E1); YES(E2); YES(Literal); NO (NotLiteral); YES(NotLiteral *); YES(NotLiteral NotLiteral::*); YES(NotLiteral (NotLiteral::*)(NotLiteral)); struct A { A(const A&) = default; A(int); }; NO(A); // no constexpr ctor other than copy