X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=libstdc%2B%2B-v3%2Ftestsuite%2Ftr1%2F4_metaprogramming%2Fheaders%2Ftype_traits%2Fsynopsis.cc;fp=libstdc%2B%2B-v3%2Ftestsuite%2Ftr1%2F4_metaprogramming%2Fheaders%2Ftype_traits%2Fsynopsis.cc;h=5f96f606c3ff08bc23c674b69e5ffc6e0554a5d9;hb=6fed43773c9b0ce596dca5686f37ac3fc0fa11c0;hp=0000000000000000000000000000000000000000;hpb=27b11d56b743098deb193d510b337ba22dc52e5c;p=msp430-gcc.git diff --git a/libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/synopsis.cc b/libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/synopsis.cc new file mode 100644 index 00000000..5f96f606 --- /dev/null +++ b/libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/synopsis.cc @@ -0,0 +1,103 @@ +// { dg-do compile } + +// 2007-02-04 Benjamin Kosnik +// +// Copyright (C) 2007, 2009 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING3. If not see +// . + +#include + +namespace std { +namespace tr1 { + + // [4.3] helper class: + template struct integral_constant; + typedef integral_constant true_type; + typedef integral_constant false_type; + + // [4.5.1] primary type categories: + template struct is_void; + template struct is_integral; + template struct is_floating_point; + template struct is_array; + template struct is_pointer; + template struct is_reference; + template struct is_member_object_pointer; + template struct is_member_function_pointer; + template struct is_enum; + template struct is_union; + template struct is_class; + template struct is_function; + + // [4.5.2] composite type categories: + template struct is_arithmetic; + template struct is_fundamental; + template struct is_object; + template struct is_scalar; + template struct is_compound; + template struct is_member_pointer; + + // [4.5.3] type properties: + template struct is_const; + template struct is_volatile; + template struct is_pod; + template struct is_empty; + template struct is_polymorphic; + template struct is_abstract; + template struct has_trivial_constructor; + template struct has_trivial_copy; + template struct has_trivial_assign; + template struct has_trivial_destructor; + template struct has_nothrow_constructor; + template struct has_nothrow_copy; + template struct has_nothrow_assign; + template struct has_virtual_destructor; + template struct is_signed; + template struct is_unsigned; + template struct alignment_of; + template struct rank; + template struct extent; + + // [4.6] type relations: + template struct is_same; + template struct is_base_of; + template struct is_convertible; + + // [4.7.1] const-volatile modifications: + template struct remove_const; + template struct remove_volatile; + template struct remove_cv; + template struct add_const; + template struct add_volatile; + template struct add_cv; + + // [4.7.2] reference modifications: + template struct remove_reference; + template struct add_reference; + + // [4.7.3] array modifications: + template struct remove_extent; + template struct remove_all_extents; + + // [4.7.4] pointer modifications: + template struct remove_pointer; + template struct add_pointer; + + // [4.8] other transformations: + template struct aligned_storage; +} // namespace tr1 +} // namespace std