Wandbox
SettingsLog
SettingsLog
Language
GitHubLogin
Ran/Viewed Log

Author

anonymous

about 6 years ago

Language

C++

Compiler

gcc HEAD 9.0.1 20190411 (experimental)

Options
Warnings
Optimization
Don't Use Boost
C++2a
no pedantic
Raw compiler options
-pedantic -pthread

Author

anonymous

about 6 years ago

$ g++ prog.cc -Wall -Wextra -O2 -march=native -std=c++2a -pedantic -pthread
prog.cc:2:14: error: 'shared_ptr' in namespace 'std' does not name a template type
    2 | typedef std::shared_ptr<node> spnode;
      |              ^~~~~~~~~~
prog.cc:1:1: note: 'std::shared_ptr' is defined in header '<memory>'; did you forget to '#include <memory>'?
  +++ |+#include <memory>
    1 | class node;
prog.cc:3:24: error: 'hash' is not a class template
    3 | template<> struct std::hash<node> { size_t operator()(const node& n) const; };
      |                        ^~~~
prog.cc:3:35: error: qualified name does not name a class before '{' token
    3 | template<> struct std::hash<node> { size_t operator()(const node& n) const; };
      |                                   ^
prog.cc:4:8: error: 'spnode' does not name a type; did you mean 'node'?
    4 | extern spnode T, F;
      |        ^~~~~~
      |        node
prog.cc:6:14: error: 'unordered_map' in namespace 'std' does not name a template type
    6 |  static std::unordered_map<node, spnode> M; //node to its index
      |              ^~~~~~~~~~~~~
prog.cc:1:1: note: 'std::unordered_map' is defined in header '<unordered_map>'; did you forget to '#include <unordered_map>'?
  +++ |+#include <unordered_map>
    1 | class node;
prog.cc:7:2: error: 'size_t' does not name a type
    7 |  size_t var;
      |  ^~~~~~
prog.cc:1:1: note: 'size_t' is defined in header '<cstddef>'; did you forget to '#include <cstddef>'?
  +++ |+#include <cstddef>
    1 | class node;
prog.cc:8:2: error: 'spnode' does not name a type; did you mean 'node'?
    8 |  spnode hi, lo;
      |  ^~~~~~
      |  node
prog.cc:10:13: error: expected ')' before 'var'
   10 |  node(size_t var, spnode hi, spnode lo) : var(var), hi(hi), lo(lo) {}
      |      ~      ^~~~
      |             )
prog.cc:11:2: error: 'size_t' does not name a type
   11 |  size_t v() const { return var; }
      |  ^~~~~~
prog.cc:11:2: note: 'size_t' is defined in header '<cstddef>'; did you forget to '#include <cstddef>'?
prog.cc:12:8: error: 'spnode' does not name a type; did you mean 'node'?
   12 |  const spnode h() const { return hi; }
      |        ^~~~~~
      |        node
prog.cc:13:8: error: 'spnode' does not name a type; did you mean 'node'?
   13 |  const spnode l() const { return lo; }
      |        ^~~~~~
      |        node
prog.cc:23:9: error: 'spnode' does not name a type; did you mean 'node'?
   23 |  static spnode ntrue() {
      |         ^~~~~~
      |         node
prog.cc:26:9: error: 'spnode' does not name a type; did you mean 'node'?
   26 |  static spnode nfalse() {
      |         ^~~~~~
      |         node
prog.cc:29:9: error: 'spnode' does not name a type; did you mean 'node'?
   29 |  static spnode add(size_t _v, spnode _h, spnode _l) {
      |         ^~~~~~
      |         node
prog.cc:32:9: error: 'spnode' does not name a type; did you mean 'node'?
   32 |  static spnode add(spnode n) {
      |         ^~~~~~
      |         node
prog.cc:41:9: error: 'size_t' does not name a type
   41 |  static size_t size() { return M.size(); }
      |         ^~~~~~
prog.cc:41:9: note: 'size_t' is defined in header '<cstddef>'; did you forget to '#include <cstddef>'?
prog.cc: In member function 'bool node::leaf() const':
prog.cc:14:29: error: 'var' was not declared in this scope
   14 |  bool leaf() const { return var == 0 || var == (size_t)-1; }
      |                             ^~~
prog.cc:14:49: error: 'size_t' was not declared in this scope
   14 |  bool leaf() const { return var == 0 || var == (size_t)-1; }
      |                                                 ^~~~~~
prog.cc:14:49: note: 'size_t' is defined in header '<cstddef>'; did you forget to '#include <cstddef>'?
prog.cc: In member function 'bool node::trueleaf() const':
prog.cc:15:33: error: 'var' was not declared in this scope
   15 |  bool trueleaf() const { return var; }
      |                                 ^~~
prog.cc: In member function 'bool node::operator==(const node&) const':
prog.cc:17:10: error: 'var' was not declared in this scope
   17 |   return var == n.var && hi == n.hi && lo == n.lo;
      |          ^~~
prog.cc:17:19: error: 'const class node' has no member named 'var'
   17 |   return var == n.var && hi == n.hi && lo == n.lo;
      |                   ^~~
prog.cc:17:26: error: 'hi' was not declared in this scope; did you mean 'this'?
   17 |   return var == n.var && hi == n.hi && lo == n.lo;
      |                          ^~
      |                          this
prog.cc:17:34: error: 'const class node' has no member named 'hi'
   17 |   return var == n.var && hi == n.hi && lo == n.lo;
      |                                  ^~
prog.cc:17:40: error: 'lo' was not declared in this scope
   17 |   return var == n.var && hi == n.hi && lo == n.lo;
      |                                        ^~
prog.cc:17:48: error: 'const class node' has no member named 'lo'
   17 |   return var == n.var && hi == n.hi && lo == n.lo;
      |                                                ^~
prog.cc: In static member function 'static void node::bdd_init()':
prog.cc:20:3: error: 'T' was not declared in this scope
   20 |   T = node::ntrue(), F = node::nfalse();
      |   ^
prog.cc:20:13: error: 'ntrue' is not a member of 'node'
   20 |   T = node::ntrue(), F = node::nfalse();
      |             ^~~~~
prog.cc:20:22: error: 'F' was not declared in this scope
   20 |   T = node::ntrue(), F = node::nfalse();
      |                      ^
prog.cc:20:32: error: 'nfalse' is not a member of 'node'
   20 |   T = node::ntrue(), F = node::nfalse();
      |                                ^~~~~~
prog.cc:21:9: error: 'M' is not a member of 'node'
   21 |   node::M.emplace(*T, T), node::M.emplace(*F, F);
      |         ^
prog.cc:21:33: error: 'M' is not a member of 'node'
   21 |   node::M.emplace(*T, T), node::M.emplace(*F, F);
      |                                 ^
prog.cc: In destructor 'node::~node()':
prog.cc:42:12: error: 'M' was not declared in this scope
   42 |  ~node() { M.erase(*this); }
      |            ^
Exit Code:
1