Wandbox
SettingsLog
SettingsLog
Language
GitHubLogin
Ran/Viewed Log

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