]> git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/testsuite/26_numerics/valarray/name_lookup.cc
Update copyright years.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / 26_numerics / valarray / name_lookup.cc
1 // 2002-08-02 gdr
2
3 // Copyright (C) 2002-2019 Free Software Foundation, Inc.
4 //
5 // This file is part of the GNU ISO C++ Library. This library is free
6 // software; you can redistribute it and/or modify it under the
7 // terms of the GNU General Public License as published by the
8 // Free Software Foundation; either version 3, or (at your option)
9 // any later version.
10
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
15
16 // You should have received a copy of the GNU General Public License along
17 // with this library; see the file COPYING3. If not see
18 // <http://www.gnu.org/licenses/>.
19
20
21 // Test name lookup resolutions for standard functions applied to an
22 // array expression.
23 // { dg-do compile }
24
25 #include <valarray>
26
27 namespace My
28 {
29 struct Number
30 {
31 operator bool() const;
32 };
33
34 Number operator+(Number);
35 Number operator-(Number);
36 Number operator~(Number);
37
38 bool operator!(Number);
39
40 Number operator+(Number, Number);
41 Number operator-(Number, Number);
42 Number operator*(Number, Number);
43 Number operator/(Number, Number);
44 Number operator%(Number, Number);
45
46 Number operator^(Number, Number);
47 Number operator&(Number, Number);
48 Number operator|(Number, Number);
49
50 Number operator<<(Number, Number);
51 Number operator>>(Number, Number);
52
53 bool operator==(Number, Number);
54 bool operator!=(Number, Number);
55 bool operator<(Number, Number);
56 bool operator<=(Number, Number);
57 bool operator>(Number, Number);
58 bool operator>=(Number, Number);
59
60 Number abs(Number);
61
62 Number cos(Number);
63 Number cosh(Number);
64 Number acos(Number);
65
66 Number sin(Number);
67 Number sinh(Number);
68 Number asin(Number);
69
70 Number tan(Number);
71 Number tanh(Number);
72 Number atan(Number);
73
74 Number exp(Number);
75 Number log(Number);
76 Number log10(Number);
77 Number sqrt(Number);
78
79 Number atan2(Number, Number);
80 Number pow(Number, Number);
81 }
82
83 int main()
84 {
85 typedef std::valarray<My::Number> Array;
86 Array u(10), v(10);
87 v = +u;
88 v = -u;
89 v = ~u;
90 std::valarray<bool> z = !u;
91
92 v = abs(u);
93
94 v = cos(u);
95 v = cosh(u);
96 v = acos(u);
97
98 v = sin(u);
99 v = sinh(u);
100 v = asin(u);
101
102 v = tan(u);
103 v = tanh(u);
104 v = atan(u);
105
106 v = exp(u);
107 v = log(u);
108 v = log10(u);
109 v = sqrt(u);
110
111 Array w = u + v;
112 w = u - v;
113 w = u * v;
114 w = u / v;
115 w = u % v;
116
117 w = u ^ v;
118 w = u & v;
119 w = u | v;
120
121 w = u << v;
122 w = u >> v;
123
124 z = u == v;
125 z = u != v;
126 z = u < v;
127 z = u <= v;
128 z = u > v;
129 z = u >= v;
130
131 w = atan2(u, v);
132 w = pow(u, v);
133 }