// { dg-do compile } // { dg-require-normal-namespace "" } // Copyright (C) 2007-2019 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 // . // { dg-options "-Wno-deprecated" } #include namespace std { // lib.base, base: template struct unary_function; template struct binary_function; // lib.arithmetic.operations, arithmetic operations: template struct plus; template struct minus; template struct multiplies; template struct divides; template struct modulus; template struct negate; // lib.comparisons, comparisons: template struct equal_to; template struct not_equal_to; template struct greater; template struct less; template struct greater_equal; template struct less_equal; // lib.logical.operations, logical operations: template struct logical_and; template struct logical_or; template struct logical_not; // lib.negators, negators: template struct unary_negate; template _GLIBCXX14_CONSTEXPR unary_negate not1(const Predicate&); template struct binary_negate; template _GLIBCXX14_CONSTEXPR binary_negate not2(const Predicate&); // lib.binders, binders: template class binder1st; template binder1st bind1st(const Operation&, const T&); template class binder2nd; template binder2nd bind2nd(const Operation&, const T&); // lib.function.pointer.adaptors, adaptors: template class pointer_to_unary_function; template pointer_to_unary_function ptr_fun(Result (*)(Arg)); template class pointer_to_binary_function; template pointer_to_binary_function ptr_fun(Result (*)(Arg1,Arg2)); // lib.member.pointer.adaptors, adaptors: template class mem_fun_t; template class mem_fun1_t; template mem_fun_t mem_fun(S (T::*f)()); template mem_fun1_t mem_fun(S (T::*f)(A)); template class mem_fun_ref_t; template class mem_fun1_ref_t; template mem_fun_ref_t mem_fun_ref(S (T::*f)()); template mem_fun1_ref_t mem_fun_ref(S (T::*f)(A)); template class const_mem_fun_t; template class const_mem_fun1_t; template const_mem_fun_t mem_fun(S (T::*f)() const); template const_mem_fun1_t mem_fun(S (T::*f)(A) const); template class const_mem_fun_ref_t; template class const_mem_fun1_ref_t; template const_mem_fun_ref_t mem_fun_ref(S (T::*f)() const); template const_mem_fun1_ref_t mem_fun_ref(S (T::*f)(A) const); }