1 // { dg-do compile } 2 3 // 2007-02-04 Benjamin Kosnik <bkoz@redhat.com> 4 // 5 // Copyright (C) 2007-2018 Free Software Foundation, Inc. 6 // 7 // This file is part of the GNU ISO C++ Library. This library is free 8 // software; you can redistribute it and/or modify it under the 9 // terms of the GNU General Public License as published by the 10 // Free Software Foundation; either version 3, or (at your option) 11 // any later version. 12 // 13 // This library is distributed in the hope that it will be useful, 14 // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 // GNU General Public License for more details. 17 // 18 // You should have received a copy of the GNU General Public License 19 // along with this library; see the file COPYING3. If not see 20 // <http://www.gnu.org/licenses/>. 21 22 #include <tr1/functional> 23 24 namespace std { 25 namespace tr1 { 26 27 // [3.4] class template result_of 28 template <class FunctionCallType> class result_of; 29 30 #if 0 31 // [3.5] function template mem_fn 32 template<class R, class T> unspecified mem_fn(R T::* pm); 33 #endif 34 35 // [3.6] function object binders 36 template<class T> struct is_bind_expression; 37 template<class T> struct is_placeholder; 38 39 #if 0 40 template<class F, class T1, ..., class TN> 41 unspecified bind(F f, T1 t1, ..., TN tN); 42 43 template<class R, class F, class T1, ..., class Tn > 44 unspecified bind(F f, T1 t1, ..., TN tN); 45 46 namespace placeholders { 47 // M is the implementation-defined number of placeholders 48 extern unspecified _1; 49 extern unspecified _2; 50 . 51 . 52 . 53 extern unspecified _M; 54 } 55 #endif 56 57 // [3.7] polymorphic function wrappers 58 class bad_function_call; 59 template<class Function> class function; 60 template<class Function> 61 void swap(function<Function>&, function<Function>&); 62 template<class Function1, class Function2> 63 void operator==(const function<Function1>&, const function<Function2>&); 64 template<class Function1, class Function2> 65 void operator!=(const function<Function1>&, const function<Function2>&); 66 67 #if 0 68 template <class Function> 69 bool operator==(const function<Function>&, unspecified-null-pointer-type); 70 template <class Function> 71 bool operator==(unspecified-null-pointer-type, const function<Function>&); 72 template <class Function> 73 bool operator!=(const function<Function>&, unspecified-null-pointer-type); 74 template <class Function> 75 bool operator!=(unspecified-null-pointer-type, const function<Function>&); 76 #endif 77 78 } // namespace tr1 79 } // namespace std 80