diff options
author | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-04-19 00:10:53 +0000 |
---|---|---|
committer | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-04-19 00:10:53 +0000 |
commit | 505f943d08cafaa2ac478c98e813ba1a7749ff7f (patch) | |
tree | facddf3c84a29435c4341358f41cf948bd528d8e /libstdc++-v3/testsuite/20_util/is_nothrow_copy_constructible/value.cc | |
parent | e51c3f95b340127d095d628a3f31f76679d7b6df (diff) | |
download | gcc-505f943d08cafaa2ac478c98e813ba1a7749ff7f.tar.gz |
2011-04-18 Paolo Carlini <paolo.carlini@oracle.com>
* include/std/type_traits (is_nothrow_default_constructible,
is_nothrow_copy_constructible, is_nothrow_move_constructible,
is_copy_constructible, is_move_constructible): Add.
(has_nothrow_default_constructor, has_nothrow_copy_constructor):
Remove.
(is_nothrow_constructible): Adjust.
* testsuite/util/testsuite_tr1.h (ThrowDefaultClass,
ThrowCopyConsClass, ThrowMoveConsClass, NoexceptDefaultClass,
ExceptDefaultClass, NoexceptCopyConsClass, ExceptCopyConsClass,
NoexceptMoveConsClass, ExceptMoveConsClass): Add in C++0x mode.
* testsuite/20_util/has_nothrow_default_constructor: Remove.
* testsuite/20_util/has_nothrow_copy_constructor: Likewise.
* testsuite/20_util/is_nothrow_move_constructible/value.cc: Likewise.
* testsuite/20_util/is_nothrow_move_constructible/requirements/
typedefs.cc: Likewise.
* testsuite/20_util/is_nothrow_move_constructible/requirements/
explicit_instantiation.cc: Likewise.
* testsuite/20_util/is_nothrow_copy_constructible/value.cc: Likewise.
* testsuite/20_util/is_nothrow_copy_constructible/requirements/
typedefs.cc: Likewise.
* testsuite/20_util/is_nothrow_copy_constructible/requirements/
explicit_instantiation.cc: Likewise.
* testsuite/20_util/is_nothrow_default_constructible/value.cc:
Likewise.
* testsuite/20_util/is_nothrow_default_constructible/requirements/
typedefs.cc: Likewise.
* testsuite/20_util/is_nothrow_default_constructible/requirements/
explicit_instantiation.cc: Likewise.
* testsuite/20_util/is_move_constructible/value.cc: Likewise.
* testsuite/20_util/is_move_constructible/requirements/typedefs.cc:
Likewise.
* testsuite/20_util/is_move_constructible/requirements/
explicit_instantiation.cc: Likewise.
* testsuite/20_util/is_copy_constructible/value.cc: Likewise.
* testsuite/20_util/is_copy_constructible/requirements/typedefs.cc:
Likewise.
* testsuite/20_util/is_copy_constructible/requirements/
explicit_instantiation.cc: Likewise.
* testsuite/20_util/is_default_constructible/value.cc: Add tests.
* testsuite/20_util/is_nothrow_constructible/value.cc: Likewise.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
Adjust dg-error line numbers.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
Likewise.
* testsuite/20_util/declval/requirements/1_neg.cc: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172684 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/testsuite/20_util/is_nothrow_copy_constructible/value.cc')
-rw-r--r-- | libstdc++-v3/testsuite/20_util/is_nothrow_copy_constructible/value.cc | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/libstdc++-v3/testsuite/20_util/is_nothrow_copy_constructible/value.cc b/libstdc++-v3/testsuite/20_util/is_nothrow_copy_constructible/value.cc new file mode 100644 index 00000000000..2c279967cc1 --- /dev/null +++ b/libstdc++-v3/testsuite/20_util/is_nothrow_copy_constructible/value.cc @@ -0,0 +1,74 @@ +// { dg-options "-std=gnu++0x" } +// 2004-12-30 Paolo Carlini <pcarlini@suse.de> +// +// Copyright (C) 2004, 2005, 2007, 2009, 2011 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 +// <http://www.gnu.org/licenses/>. + +#include <type_traits> +#include <testsuite_hooks.h> +#include <testsuite_tr1.h> + +void test01() +{ + bool test __attribute__((unused)) = true; + using std::is_nothrow_copy_constructible; + using namespace __gnu_test; + + // Positive tests. + VERIFY( (test_category<is_nothrow_copy_constructible, int>(true)) ); + VERIFY( (test_category<is_nothrow_copy_constructible, float>(true)) ); + VERIFY( (test_category<is_nothrow_copy_constructible, EnumType>(true)) ); + VERIFY( (test_category<is_nothrow_copy_constructible, int*>(true)) ); + VERIFY( (test_category<is_nothrow_copy_constructible, int(*)(int)>(true)) ); + VERIFY( (test_category<is_nothrow_copy_constructible, + int (ClassType::*)>(true)) ); + VERIFY( (test_category<is_nothrow_copy_constructible, + int (ClassType::*) (int)>(true)) ); + + VERIFY( (test_property<is_nothrow_copy_constructible, + NoexceptCopyConsClass>(true)) ); + VERIFY( (test_property<is_nothrow_copy_constructible, + const NoexceptCopyConsClass>(true)) ); + + // Negative tests. + VERIFY( (test_category<is_nothrow_copy_constructible, void>(false)) ); + VERIFY( (test_category<is_nothrow_copy_constructible, int[2]>(false)) ); + VERIFY( (test_category<is_nothrow_copy_constructible, int[]>(false)) ); + VERIFY( (test_category<is_nothrow_copy_constructible, float[][3]>(false)) ); + VERIFY( (test_category<is_nothrow_copy_constructible, + EnumType[2][3][4]>(false)) ); + VERIFY( (test_category<is_nothrow_copy_constructible, int*[3]>(false)) ); + VERIFY( (test_category<is_nothrow_copy_constructible, + int(*[][2])(int)>(false)) ); + VERIFY( (test_category<is_nothrow_copy_constructible, + int (ClassType::*[2][3])>(false)) ); + VERIFY( (test_category<is_nothrow_copy_constructible, + int (ClassType::*[][2][3]) (int)>(false)) ); + + VERIFY( (test_property<is_nothrow_copy_constructible, + volatile NoexceptCopyConsClass>(false)) ); + VERIFY( (test_property<is_nothrow_copy_constructible, + ThrowCopyConsClass>(false)) ); + VERIFY( (test_property<is_nothrow_copy_constructible, + ExceptCopyConsClass>(false)) ); +} + +int main() +{ + test01(); + return 0; +} |