// { dg-options "-std=gnu++0x" }
// { dg-do compile }
-// Copyright (C) 2008 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010, 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 2, or (at your option)
+// 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,
// 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 COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
#include <functional>
void test01()
{
- test_type* null_tt = 0;
- const test_type* null_ttc = 0;
- int zero;
+ test_type* null_tt = 0;
+ const test_type* null_ttc = 0;
+ int zero;
- std::reference_wrapper<double (int)>* pr1;
- verify_return_type((*pr1)(0), double());
- std::reference_wrapper<double (*)(int)>* pr2;
- verify_return_type((*pr2)(0), double());
- std::reference_wrapper<int (test_type::*)()>* pr3;
- verify_return_type((*pr3)(null_tt), int());
- std::reference_wrapper<int (test_type::*)()const>* pr4;
- verify_return_type((*pr4)(null_ttc), int());
- std::reference_wrapper<functor1>* pr5;
+ std::reference_wrapper<double (int)>* pr1(0);
+ verify_return_type((*pr1)(0), double());
+ std::reference_wrapper<double (*)(int)>* pr2(0);
+ verify_return_type((*pr2)(0), double());
+ std::reference_wrapper<int (test_type::*)()>* pr3(0);
+ verify_return_type((*pr3)(null_tt), int());
+ std::reference_wrapper<int (test_type::*)()const>* pr4(0);
+ verify_return_type((*pr4)(null_ttc), int());
+ std::reference_wrapper<functor1>* pr5(0);
- // libstdc++/24803
- // FIXME: verify_return_type((*pr5)(0), double());
- verify_return_type((*pr5)(zero), double());
+ // libstdc++/24803
+ verify_return_type((*pr5)(0), double());
+ verify_return_type((*pr5)(zero), double());
- std::reference_wrapper<double (int, char)>* pr1b;
- verify_return_type((*pr1b)(0,0), double());
- std::reference_wrapper<double (*)(int, char)>* pr2b;
- verify_return_type((*pr2b)(0,0), double());
- std::reference_wrapper<int (test_type::*)(char)>* pr3b;
- verify_return_type((*pr3b)(null_tt,zero), int());
- std::reference_wrapper<int (test_type::*)()const>* pr4b;
- verify_return_type((*pr4b)(null_ttc), int());
- std::reference_wrapper<functor2>* pr5b;
+ std::reference_wrapper<double (int, char)>* pr1b(0);
+ verify_return_type((*pr1b)(0, 0), double());
+ std::reference_wrapper<double (*)(int, char)>* pr2b(0);
+ verify_return_type((*pr2b)(0, 0), double());
+ std::reference_wrapper<int (test_type::*)(char)>* pr3b(0);
+ verify_return_type((*pr3b)(null_tt,zero), int());
+ std::reference_wrapper<int (test_type::*)()const>* pr4b(0);
+ verify_return_type((*pr4b)(null_ttc), int());
+ std::reference_wrapper<functor2>* pr5b(0);
- // libstdc++/24803
- // FIXME: verify_return_type((*pr5b)(0,0), double());
- verify_return_type((*pr5b)(zero,zero), double());
+ // libstdc++/24803
+ verify_return_type((*pr5b)(0, 0), double());
+ verify_return_type((*pr5b)(zero, zero), double());
}