// { 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