]>
git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/testsuite/20_util/function_objects/comparisons_void.cc
1 // { dg-options " -std=gnu++1y " }
4 // Copyright (C) 2013 Free Software Foundation, Inc.
6 // This file is part of the GNU ISO C++ Library. This library is free
7 // software; you can redistribute it and/or modify it under the
8 // terms of the GNU General Public License as published by the
9 // Free Software Foundation; either version 3, or (at your option)
12 // This library is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU General Public License for more details.
17 // You should have received a copy of the GNU General Public License along
18 // with this library; see the file COPYING3. If not see
19 // <http://www.gnu.org/licenses/>.
29 L
operator+(const R
&) const { return *this; }
30 L
operator-(const R
&) const { return *this; }
31 L
operator*(const R
&) const { return *this; }
32 L
operator/(const R
&) const { return *this; }
33 L
operator%(const R
&) const { return *this; }
34 L
operator-() const { return *this; }
36 bool operator==(const R
&) const { return true; }
37 bool operator!=(const R
&) const { return false; }
38 bool operator<(const R
&) const { return false; }
39 bool operator<=(const R
&) const { return true; }
40 bool operator>(const R
&) const { return false; }
41 bool operator>=(const R
&) const { return true; }
43 bool operator&&(const R
&) const { return true; }
44 bool operator||(const R
&) const { return true; }
45 bool operator!() const { return false; }
47 int operator&(const R
&) const { return 1; }
48 int operator|(const R
&) const { return 1; }
49 int operator^(const R
&) const { return 0; }
50 int operator~() const { return 0; }
56 // test unary function objects
57 template<typename F
, typename Check
= typename
F::is_transparent
>
65 // test binary function objects
66 template<typename F
, typename Check
= typename
F::is_transparent
>
74 auto plus
= test2( std::plus
<>() );
75 auto minus
= test2( std::minus
<>() );
76 auto multiplies
= test2( std::multiplies
<>() );
77 auto divides
= test2( std::divides
<>() );
78 auto modulus
= test2( std::modulus
<>() );
79 auto negate
= test1( std::negate
<>() );
81 auto equal_to
= test2( std::equal_to
<>() );
82 auto not_equal_to
= test2( std::not_equal_to
<>() );
83 auto greater
= test2( std::greater
<>() );
84 auto less
= test2( std::less
<>() );
85 auto greater_equal
= test2( std::greater_equal
<>() );
86 auto less_equal
= test2( std::less_equal
<>() );
88 auto logical_and
= test2( std::logical_and
<>() );
89 auto logical_or
= test2( std::logical_or
<>() );
90 auto logical_not
= test1( std::logical_not
<>() );
92 auto bit_and
= test2( std::bit_and
<>() );
93 auto bit_or
= test2( std::bit_or
<>() );
94 auto bit_xor
= test2( std::bit_xor
<>() );
95 auto bit_not
= test1( std::bit_not
<>() );