1// { dg-options "-std=gnu++11" } 2// { dg-do compile } 3 4// 2008-05-20 Paolo Carlini <paolo.carlini@oracle.com> 5// 6// Copyright (C) 2008-2015 Free Software Foundation, Inc. 7// 8// This file is part of the GNU ISO C++ Library. This library is free 9// software; you can redistribute it and/or modify it under the 10// terms of the GNU General Public License as published by the 11// Free Software Foundation; either version 3, or (at your option) 12// any later version. 13// 14// This library is distributed in the hope that it will be useful, 15// but WITHOUT ANY WARRANTY; without even the implied warranty of 16// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17// GNU General Public License for more details. 18// 19// You should have received a copy of the GNU General Public License along 20// with this library; see the file COPYING3. If not see 21// <http://www.gnu.org/licenses/>. 22 23#include <type_traits> 24#include <testsuite_tr1.h> 25 26void test01() 27{ 28 using std::is_integral; 29 using namespace __gnu_test; 30 31 static_assert(test_category<is_integral, void>(false), ""); 32 33 static_assert(test_category<is_integral, char>(true), ""); 34 static_assert(test_category<is_integral, signed char>(true), ""); 35 static_assert(test_category<is_integral, unsigned char>(true), ""); 36#ifdef _GLIBCXX_USE_WCHAR_T 37 static_assert(test_category<is_integral, wchar_t>(true), ""); 38#endif 39 static_assert(test_category<is_integral, char16_t>(true), ""); 40 static_assert(test_category<is_integral, char32_t>(true), ""); 41 static_assert(test_category<is_integral, short>(true), ""); 42 static_assert(test_category<is_integral, unsigned short>(true), ""); 43 static_assert(test_category<is_integral, int>(true), ""); 44 static_assert(test_category<is_integral, unsigned int>(true), ""); 45 static_assert(test_category<is_integral, long>(true), ""); 46 static_assert(test_category<is_integral, unsigned long>(true), ""); 47 static_assert(test_category<is_integral, long long>(true), ""); 48 static_assert(test_category<is_integral, unsigned long long>(true), ""); 49 50 static_assert(test_category<is_integral, float>(false), ""); 51 static_assert(test_category<is_integral, double>(false), ""); 52 static_assert(test_category<is_integral, long double>(false), ""); 53 54 // GNU Extensions. 55#ifdef _GLIBCXX_USE_INT128 56 static_assert(test_category<is_integral, __int128>(true), ""); 57 static_assert(test_category<is_integral, unsigned __int128>(true), ""); 58#endif 59 60#ifdef _GLIBCXX_USE_FLOAT128 61 static_assert(test_category<is_integral, __float128>(false), ""); 62#endif 63 64 // Sanity check. 65 static_assert(test_category<is_integral, ClassType>(false), ""); 66} 67