diff options
Diffstat (limited to 'gcc-4.4.3/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs.cc')
-rw-r--r-- | gcc-4.4.3/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs.cc | 87 |
1 files changed, 0 insertions, 87 deletions
diff --git a/gcc-4.4.3/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs.cc b/gcc-4.4.3/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs.cc deleted file mode 100644 index 56ee29e1a..000000000 --- a/gcc-4.4.3/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs.cc +++ /dev/null @@ -1,87 +0,0 @@ -// { dg-options "-std=gnu++0x" } - -// Copyright (C) 2008, 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 -// <http://www.gnu.org/licenses/>. - -#include <functional> -#include <type_traits> -#include <testsuite_hooks.h> -#include <testsuite_tr1.h> - -using namespace __gnu_test; - -struct X {}; - -struct int_result_type { typedef int result_type; }; - -struct derives_unary : std::unary_function<int, int> {}; - -struct derives_binary : std::binary_function<int, float, int> {}; - -struct derives_unary_binary - : std::unary_function<int, int>, - std::binary_function<int, float, int> -{ - typedef int result_type; -}; - -void test01() -{ - bool test __attribute__((unused)) = true; - - using std::reference_wrapper; - using std::is_same; - using std::is_convertible; - using std::unary_function; - using std::binary_function; - - // Check result_type typedef - VERIFY((is_same<reference_wrapper<int_result_type>::result_type, int>::value)); - VERIFY((is_same<reference_wrapper<derives_unary>::result_type, int>::value)); - VERIFY((is_same<reference_wrapper<derives_binary>::result_type, int>::value)); - VERIFY((is_same<reference_wrapper<derives_unary_binary>::result_type, int>::value)); - VERIFY((is_same<reference_wrapper<int(void)>::result_type, int>::value)); - VERIFY((is_same<reference_wrapper<int(*)(void)>::result_type, int>::value)); - VERIFY((is_same<reference_wrapper<int (::X::*)()>::result_type, int>::value)); - VERIFY((is_same<reference_wrapper<int (::X::*)(float)>::result_type, int>::value)); - - // Check derivation from unary_function - VERIFY((is_convertible<reference_wrapper<derives_unary>*, unary_function<int, int>*>::value)); - VERIFY((is_convertible<reference_wrapper<derives_unary_binary>*, unary_function<int, int>*>::value)); - VERIFY((is_convertible<reference_wrapper<int(int)>*, unary_function<int, int>*>::value)); - VERIFY((is_convertible<reference_wrapper<int(*)(int)>*, unary_function<int, int>*>::value)); - VERIFY((is_convertible<reference_wrapper<int (::X::*)()>*, unary_function< ::X*, int>*>::value)); - VERIFY((is_convertible<reference_wrapper<int (::X::*)() const>*, unary_function<const ::X*, int>*>::value)); - VERIFY((is_convertible<reference_wrapper<int (::X::*)() volatile>*, unary_function<volatile ::X*, int>*>::value)); - VERIFY((is_convertible<reference_wrapper<int (::X::*)() const volatile>*, unary_function<const volatile ::X*, int>*>::value)); - - // Check derivation from binary_function - VERIFY((is_convertible<reference_wrapper<derives_binary>*, binary_function<int, float, int>*>::value)); - VERIFY((is_convertible<reference_wrapper<derives_unary_binary>*, binary_function<int, float, int>*>::value)); - VERIFY((is_convertible<reference_wrapper<int(int, float)>*, binary_function<int, float, int>*>::value)); - VERIFY((is_convertible<reference_wrapper<int(*)(int, float)>*, binary_function<int, float, int>*>::value)); - VERIFY((is_convertible<reference_wrapper<int (::X::*)(float)>*, binary_function< ::X*, float, int>*>::value)); - VERIFY((is_convertible<reference_wrapper<int (::X::*)(float) const>*, binary_function<const ::X*, float, int>*>::value)); - VERIFY((is_convertible<reference_wrapper<int (::X::*)(float) volatile>*, binary_function<volatile ::X*, float, int>*>::value)); - VERIFY((is_convertible<reference_wrapper<int (::X::*)(float) const volatile>*, binary_function<const volatile ::X*, float, int>*>::value)); -} - -int main() -{ - test01(); - return 0; -} |