Language
C++
Compiler
gcc HEAD 9.0.1 20190327 (experimental)
Options
Warnings
Boost 1.69.0
C++2a(GNU)
no pedantic
$ g++ prog.cc -Wall -Wextra -I/opt/wandbox/boost-1.69.0/gcc-head/include -std=gnu++2a
prog.cc:6:3: error: 'consteval' does not name a type; did you mean 'constexpr'?
6 | consteval immediate(int m, double d)
| ^~~~~~~~~
| constexpr
prog.cc:8:5: error: expected unqualified-id before ',' token
8 | , f{d}
| ^
prog.cc:9:3: error: expected unqualified-id before '{' token
9 | {}
| ^
prog.cc:11:3: error: 'consteval' does not name a type; did you mean 'constexpr'?
11 | consteval operator int() const {
| ^~~~~~~~~
| constexpr
prog.cc:15:3: error: 'consteval' does not name a type; did you mean 'constexpr'?
15 | consteval operator double() const {
| ^~~~~~~~~
| constexpr
prog.cc:24:1: error: 'consteval' does not name a type; did you mean 'constexpr'?
24 | consteval auto make_immediate(int m, double d) -> immediate {
| ^~~~~~~~~
| constexpr
prog.cc: In function 'int main()':
prog.cc:29:36: error: no matching function for call to 'immediate::immediate(<brace-enclosed initializer list>)'
29 | constexpr immediate im1{10, 3.141}; //ok
| ^
prog.cc:5:8: note: candidate: 'immediate::immediate()'
5 | struct immediate {
| ^~~~~~~~~
prog.cc:5:8: note: candidate expects 0 arguments, 2 provided
prog.cc:5:8: note: candidate: 'constexpr immediate::immediate(const immediate&)'
prog.cc:5:8: note: candidate expects 1 argument, 2 provided
prog.cc:5:8: note: candidate: 'constexpr immediate::immediate(immediate&&)'
prog.cc:5:8: note: candidate expects 1 argument, 2 provided
prog.cc:29:36: error: could not convert '{10, 3.141e+0}' from '<brace-enclosed initializer list>' to 'const immediate'
29 | constexpr immediate im1{10, 3.141}; //ok
| ^
| |
| <brace-enclosed initializer list>
prog.cc:30:24: error: 'make_immediate' was not declared in this scope; did you mean 'immediate'?
30 | constexpr auto im2 = make_immediate(20, 2.718); //ok
| ^~~~~~~~~~~~~~
| immediate
prog.cc:34:21: error: no matching function for call to 'immediate::immediate(<brace-enclosed initializer list>)'
34 | immediate im3{n, d}; //ng
| ^
prog.cc:5:8: note: candidate: 'immediate::immediate()'
5 | struct immediate {
| ^~~~~~~~~
prog.cc:5:8: note: candidate expects 0 arguments, 2 provided
prog.cc:5:8: note: candidate: 'constexpr immediate::immediate(const immediate&)'
prog.cc:5:8: note: candidate expects 1 argument, 2 provided
prog.cc:5:8: note: candidate: 'constexpr immediate::immediate(immediate&&)'
prog.cc:5:8: note: candidate expects 1 argument, 2 provided
prog.cc:37:26: error: no matching function for call to 'immediate::immediate(<brace-enclosed initializer list>)'
37 | immediate im5{30, 1.618}; //おそらくok、即時生成した一時オブジェクトをムーブする
| ^
prog.cc:5:8: note: candidate: 'immediate::immediate()'
5 | struct immediate {
| ^~~~~~~~~
prog.cc:5:8: note: candidate expects 0 arguments, 2 provided
prog.cc:5:8: note: candidate: 'constexpr immediate::immediate(const immediate&)'
prog.cc:5:8: note: candidate expects 1 argument, 2 provided
prog.cc:5:8: note: candidate: 'constexpr immediate::immediate(immediate&&)'
prog.cc:5:8: note: candidate expects 1 argument, 2 provided
prog.cc:39:29: error: invalid cast from type 'const immediate' to type 'int'
39 | constexpr auto m = int(im1) + im2; //ok, m == 30
| ^
prog.cc:40:32: error: invalid cast from type 'const immediate' to type 'double'
40 | constexpr auto e = double(im1) + im2; //ok, e == 5.859
| ^
prog.cc:42:23: error: invalid cast from type 'const immediate' to type 'int'
42 | std::cout << int(im1) << ", " << int(im2) << std::endl; //ok
| ^
prog.cc:43:26: error: invalid cast from type 'const immediate' to type 'double'
43 | std::cout << double(im1) << ", " << double(im2) << std::endl; //ok
| ^
prog.cc:34:13: warning: unused variable 'im3' [-Wunused-variable]
34 | immediate im3{n, d}; //ng
| ^~~
prog.cc:37:13: warning: unused variable 'im5' [-Wunused-variable]
37 | immediate im5{30, 1.618}; //おそらくok、即時生成した一時オブジェクトをムーブする
| ^~~
Exit Code:
1