Console Output

Skipping 67 KB.. Full Log
tte.h:78:26: note: candidate: 'std::pair<unsigned int, bool> BlockTypePalette::maybeIndex(const AString&, const BlockState&) const'
  std::pair<UInt32, bool> maybeIndex(const AString & aBlockTypeName, const BlockState & aBlockState) const;
                          ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockTypePalette.h:78:26: note:   no known conversion for argument 2 from '<brace-enclosed initializer list>' to 'const BlockState&'
In file included from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:2:
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:214:73: error: no matching function for call to 'BlockTypePalette::maybeIndex(const char [22], <brace-enclosed initializer list>)'
  TEST_EQUAL(palette.maybeIndex("minecraft:oak_sapling", {{"stage", "0"}}), (std::make_pair<UInt32, bool>(21, true)));
                                                                         ^
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/../TestHelpers.h:49:7: note: in definition of macro 'TEST_EQUAL'
   if (VAL1 != VAL2) \
       ^~~~
In file included from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:3:
/home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockTypePalette.h:78:26: note: candidate: 'std::pair<unsigned int, bool> BlockTypePalette::maybeIndex(const AString&, const BlockState&) const'
  std::pair<UInt32, bool> maybeIndex(const AString & aBlockTypeName, const BlockState & aBlockState) const;
                          ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockTypePalette.h:78:26: note:   no known conversion for argument 2 from '<brace-enclosed initializer list>' to 'const BlockState&'
In file included from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:2:
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:215:73: error: no matching function for call to 'BlockTypePalette::maybeIndex(const char [22], <brace-enclosed initializer list>)'
  TEST_EQUAL(palette.maybeIndex("minecraft:oak_sapling", {{"stage", "1"}}), (std::make_pair<UInt32, bool>(23, true)));
                                                                         ^
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/../TestHelpers.h:49:7: note: in definition of macro 'TEST_EQUAL'
   if (VAL1 != VAL2) \
       ^~~~
In file included from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:3:
/home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockTypePalette.h:78:26: note: candidate: 'std::pair<unsigned int, bool> BlockTypePalette::maybeIndex(const AString&, const BlockState&) const'
  std::pair<UInt32, bool> maybeIndex(const AString & aBlockTypeName, const BlockState & aBlockState) const;
                          ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockTypePalette.h:78:26: note:   no known conversion for argument 2 from '<brace-enclosed initializer list>' to 'const BlockState&'
In file included from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:2:
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:216:73: error: no matching function for call to 'BlockTypePalette::maybeIndex(const char [22], <brace-enclosed initializer list>)'
  TEST_EQUAL(palette.maybeIndex("minecraft:oak_sapling", {{"foo", "baz"}}).second, false);
                                                                         ^
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/../TestHelpers.h:49:7: note: in definition of macro 'TEST_EQUAL'
   if (VAL1 != VAL2) \
       ^~~~
In file included from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:3:
/home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockTypePalette.h:78:26: note: candidate: 'std::pair<unsigned int, bool> BlockTypePalette::maybeIndex(const AString&, const BlockState&) const'
  std::pair<UInt32, bool> maybeIndex(const AString & aBlockTypeName, const BlockState & aBlockState) const;
                          ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockTypePalette.h:78:26: note:   no known conversion for argument 2 from '<brace-enclosed initializer list>' to 'const BlockState&'
In file included from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:2:
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:217:73: error: no matching function for call to 'BlockTypePalette::maybeIndex(const char [18], <brace-enclosed initializer list>)'
  TEST_EQUAL(palette.maybeIndex("minecraft:oak_sap",     {{"stage", "0"}}).second, false);
                                                                         ^
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/../TestHelpers.h:49:7: note: in definition of macro 'TEST_EQUAL'
   if (VAL1 != VAL2) \
       ^~~~
In file included from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:3:
/home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockTypePalette.h:78:26: note: candidate: 'std::pair<unsigned int, bool> BlockTypePalette::maybeIndex(const AString&, const BlockState&) const'
  std::pair<UInt32, bool> maybeIndex(const AString & aBlockTypeName, const BlockState & aBlockState) const;
                          ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockTypePalette.h:78:26: note:   no known conversion for argument 2 from '<brace-enclosed initializer list>' to 'const BlockState&'
In file included from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:2:
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp: In function 'void testLoadTsvRegular()':
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:242:85: error: no matching function for call to 'BlockState::BlockState(<brace-enclosed initializer list>)'
  TEST_EQUAL(palette.maybeIndex("minecraft:grass", BlockState({{"snow_covered", "0"}})), (std::make_pair<UInt32, bool>(2, true)));
                                                                                     ^
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/../TestHelpers.h:49:7: note: in definition of macro 'TEST_EQUAL'
   if (VAL1 != VAL2) \
       ^~~~
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note: candidate: 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockType'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note: candidate: 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'uint_least16_t' {aka 'short unsigned int'}
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note: candidate: 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:   candidate expects 0 arguments, 1 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(const BlockState&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const BlockState&'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(BlockState&&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockState&&'
In file included from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:2:
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:243:85: error: no matching function for call to 'BlockState::BlockState(<brace-enclosed initializer list>)'
  TEST_EQUAL(palette.maybeIndex("minecraft:grass", BlockState({{"snow_covered", "1"}})), (std::make_pair<UInt32, bool>(3, true)));
                                                                                     ^
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/../TestHelpers.h:49:7: note: in definition of macro 'TEST_EQUAL'
   if (VAL1 != VAL2) \
       ^~~~
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note: candidate: 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockType'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note: candidate: 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'uint_least16_t' {aka 'short unsigned int'}
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note: candidate: 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:   candidate expects 0 arguments, 1 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(const BlockState&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const BlockState&'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(BlockState&&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockState&&'
In file included from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:2:
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:244:85: error: no matching function for call to 'BlockState::BlockState(<brace-enclosed initializer list>)'
  TEST_EQUAL(palette.maybeIndex("minecraft:air",   BlockState({{"snow_covered", "0"}})).second, false);
                                                                                     ^
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/../TestHelpers.h:49:7: note: in definition of macro 'TEST_EQUAL'
   if (VAL1 != VAL2) \
       ^~~~
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note: candidate: 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockType'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note: candidate: 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'uint_least16_t' {aka 'short unsigned int'}
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note: candidate: 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:   candidate expects 0 arguments, 1 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(const BlockState&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const BlockState&'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(BlockState&&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockState&&'
In file included from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:2:
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:245:85: error: no matching function for call to 'BlockState::BlockState(<brace-enclosed initializer list>)'
  TEST_EQUAL(palette.maybeIndex("minecraft:grass", BlockState({{"snow_covered", "2"}})).second, false);
                                                                                     ^
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/../TestHelpers.h:49:7: note: in definition of macro 'TEST_EQUAL'
   if (VAL1 != VAL2) \
       ^~~~
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note: candidate: 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockType'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note: candidate: 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'uint_least16_t' {aka 'short unsigned int'}
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note: candidate: 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:   candidate expects 0 arguments, 1 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(const BlockState&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const BlockState&'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(BlockState&&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockState&&'
In file included from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:2:
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp: In function 'void testLoadTsvUpgrade()':
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:271:85: error: no matching function for call to 'BlockState::BlockState(<brace-enclosed initializer list>)'
  TEST_EQUAL(palette.maybeIndex("minecraft:grass", BlockState({{"snow_covered", "0"}})), (std::make_pair<UInt32, bool>(32, true)));
                                                                                     ^
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/../TestHelpers.h:49:7: note: in definition of macro 'TEST_EQUAL'
   if (VAL1 != VAL2) \
       ^~~~
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note: candidate: 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockType'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note: candidate: 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'uint_least16_t' {aka 'short unsigned int'}
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note: candidate: 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:   candidate expects 0 arguments, 1 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(const BlockState&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const BlockState&'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(BlockState&&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockState&&'
In file included from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:2:
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:272:85: error: no matching function for call to 'BlockState::BlockState(<brace-enclosed initializer list>)'
  TEST_EQUAL(palette.maybeIndex("minecraft:grass", BlockState({{"snow_covered", "1"}})), (std::make_pair<UInt32, bool>(33, true)));
                                                                                     ^
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/../TestHelpers.h:49:7: note: in definition of macro 'TEST_EQUAL'
   if (VAL1 != VAL2) \
       ^~~~
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note: candidate: 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockType'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note: candidate: 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'uint_least16_t' {aka 'short unsigned int'}
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note: candidate: 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:   candidate expects 0 arguments, 1 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(const BlockState&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const BlockState&'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(BlockState&&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockState&&'
In file included from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:2:
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:273:85: error: no matching function for call to 'BlockState::BlockState(<brace-enclosed initializer list>)'
  TEST_EQUAL(palette.maybeIndex("minecraft:air",   BlockState({{"snow_covered", "0"}})).second, false);
                                                                                     ^
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/../TestHelpers.h:49:7: note: in definition of macro 'TEST_EQUAL'
   if (VAL1 != VAL2) \
       ^~~~
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note: candidate: 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockType'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note: candidate: 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'uint_least16_t' {aka 'short unsigned int'}
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note: candidate: 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:   candidate expects 0 arguments, 1 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(const BlockState&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const BlockState&'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(BlockState&&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockState&&'
In file included from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:2:
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:274:85: error: no matching function for call to 'BlockState::BlockState(<brace-enclosed initializer list>)'
  TEST_EQUAL(palette.maybeIndex("minecraft:grass", BlockState({{"snow_covered", "2"}})).second, false);
                                                                                     ^
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/../TestHelpers.h:49:7: note: in definition of macro 'TEST_EQUAL'
   if (VAL1 != VAL2) \
       ^~~~
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note: candidate: 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockType'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note: candidate: 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'uint_least16_t' {aka 'short unsigned int'}
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note: candidate: 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:   candidate expects 0 arguments, 1 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(const BlockState&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const BlockState&'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(BlockState&&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockState&&'
In file included from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:2:
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp: In function 'void testLoadFromBaseFile()':
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:298:59: error: no matching function for call to 'BlockState::BlockState(<brace-enclosed initializer list>)'
    BlockState({{"persistent", "false"}, {"distance", "6"}})
                                                           ^
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/../TestHelpers.h:49:7: note: in definition of macro 'TEST_EQUAL'
   if (VAL1 != VAL2) \
       ^~~~
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note: candidate: 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockType'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note: candidate: 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'uint_least16_t' {aka 'short unsigned int'}
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note: candidate: 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:   candidate expects 0 arguments, 1 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(const BlockState&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const BlockState&'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(BlockState&&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockState&&'
In file included from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:2:
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:305:40: error: no matching function for call to 'BlockState::BlockState(<brace-enclosed initializer list>)'
    BlockState({{"persistent", "false"}})
                                        ^
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/../TestHelpers.h:49:7: note: in definition of macro 'TEST_EQUAL'
   if (VAL1 != VAL2) \
       ^~~~
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note: candidate: 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockType'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note: candidate: 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'uint_least16_t' {aka 'short unsigned int'}
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note: candidate: 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:   candidate expects 0 arguments, 1 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(const BlockState&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const BlockState&'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(BlockState&&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockState&&'
In file included from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:2:
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp: In function 'void testLoadFromUpgradeFile()':
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:327:119: error: no matching function for call to 'make_pair<AString, BlockState>(const char [21], <brace-enclosed initializer list>)'
  TEST_EQUAL(palette.entry(44 * 16 + 8), (std::make_pair<AString, BlockState>("minecraft:stone_slab", {{"type", "top"}})));
                                                                                                                       ^
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/../TestHelpers.h:49:15: note: in definition of macro 'TEST_EQUAL'
   if (VAL1 != VAL2) \
               ^~~~
In file included from /usr/include/c++/8/bits/stl_algobase.h:64,
                 from /usr/include/c++/8/bits/specfun.h:45,
                 from /usr/include/c++/8/cmath:1892,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:112,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:1:
/usr/include/c++/8/bits/stl_pair.h:524:5: note: candidate: 'template<class _T1, class _T2> constexpr std::pair<typename std::__decay_and_strip<_Tp>::__type, typename std::__decay_and_strip<_T2>::__type> std::make_pair(_T1&&, _T2&&)'
     make_pair(_T1&& __x, _T2&& __y)
     ^~~~~~~~~
/usr/include/c++/8/bits/stl_pair.h:524:5: note:   template argument deduction/substitution failed:
In file included from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:2:
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockTypePaletteTest.cpp:327:119: note:   cannot convert '{{"type", "top"}}' (type '<brace-enclosed initializer list>') to type 'BlockState&&'
  TEST_EQUAL(palette.entry(44 * 16 + 8), (std::make_pair<AString, BlockState>("minecraft:stone_slab", {{"type", "top"}})));
                                                                                                                       ^
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/../TestHelpers.h:49:15: note: in definition of macro 'TEST_EQUAL'
   if (VAL1 != VAL2) \
               ^~~~
make[2]: *** [tests/BlockTypeRegistry/CMakeFiles/BlockTypePaletteTest.dir/build.make:63: tests/BlockTypeRegistry/CMakeFiles/BlockTypePaletteTest.dir/BlockTypePaletteTest.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1867: tests/BlockTypeRegistry/CMakeFiles/BlockTypePaletteTest.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 22%] Building CXX object tests/BlockTypeRegistry/CMakeFiles/BlockStateTest.dir/__/__/src/Bindings/BlockState.cpp.o
In file included from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:2:
/home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.h:19:7: error: redefinition of 'class BlockState'
 class BlockState
       ^~~~~~~~~~
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: previous definition of 'class BlockState'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp: In function 'void testStaticCreation()':
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:15:38: error: no matching function for call to 'BlockState::BlockState(const char [9], const char [6])'
  BlockState bs2v1("property", "value");
                                      ^
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note: candidate: 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note: candidate: 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note: candidate: 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:   candidate expects 0 arguments, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(const BlockState&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(BlockState&&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:16:69: error: no matching function for call to 'BlockState::BlockState(<brace-enclosed initializer list>)'
  BlockState bs3v1({{"property1", "value1"}, {"property2", "value2"}});
                                                                     ^
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note: candidate: 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockType'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note: candidate: 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'uint_least16_t' {aka 'short unsigned int'}
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note: candidate: 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:   candidate expects 0 arguments, 1 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(const BlockState&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const BlockState&'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(BlockState&&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockState&&'
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:20:56: error: no matching function for call to 'BlockState::BlockState(BlockState&, <brace-enclosed initializer list>)'
  BlockState bs1v3(bs1v2, {{"added property", "value1"}});
                                                        ^
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note: candidate: 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note: candidate: 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note: candidate: 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:   candidate expects 0 arguments, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(const BlockState&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(BlockState&&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:21:56: error: no matching function for call to 'BlockState::BlockState(BlockState&, <brace-enclosed initializer list>)'
  BlockState bs2v3(bs2v2, {{"added property", "value2"}});
                                                        ^
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note: candidate: 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note: candidate: 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note: candidate: 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:   candidate expects 0 arguments, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(const BlockState&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(BlockState&&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:22:56: error: no matching function for call to 'BlockState::BlockState(BlockState&, <brace-enclosed initializer list>)'
  BlockState bs3v3(bs3v2, {{"added property", "value3"}});
                                                        ^
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note: candidate: 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note: candidate: 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note: candidate: 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:   candidate expects 0 arguments, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(const BlockState&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(BlockState&&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   candidate expects 1 argument, 2 provided
In file included from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:3:
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:36:19: error: 'class BlockState' has no member named 'value'
  TEST_EQUAL(bs1v1.value("property"), "");
                   ^~~~~
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/../TestHelpers.h:49:7: note: in definition of macro 'TEST_EQUAL'
   if (VAL1 != VAL2) \
       ^~~~
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:37:19: error: 'class BlockState' has no member named 'value'
  TEST_EQUAL(bs2v1.value("property"), "value");
                   ^~~~~
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/../TestHelpers.h:49:7: note: in definition of macro 'TEST_EQUAL'
   if (VAL1 != VAL2) \
       ^~~~
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:38:19: error: 'class BlockState' has no member named 'value'
  TEST_EQUAL(bs2v1.value("property1"), "");
                   ^~~~~
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/../TestHelpers.h:49:7: note: in definition of macro 'TEST_EQUAL'
   if (VAL1 != VAL2) \
       ^~~~
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:39:19: error: 'class BlockState' has no member named 'value'
  TEST_EQUAL(bs3v1.value("property1"), "value1");
                   ^~~~~
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/../TestHelpers.h:49:7: note: in definition of macro 'TEST_EQUAL'
   if (VAL1 != VAL2) \
       ^~~~
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:40:19: error: 'class BlockState' has no member named 'value'
  TEST_EQUAL(bs3v1.value("property2"), "value2");
                   ^~~~~
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/../TestHelpers.h:49:7: note: in definition of macro 'TEST_EQUAL'
   if (VAL1 != VAL2) \
       ^~~~
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:41:19: error: 'class BlockState' has no member named 'value'
  TEST_EQUAL(bs1v3.value("added property"), "value1");
                   ^~~~~
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/../TestHelpers.h:49:7: note: in definition of macro 'TEST_EQUAL'
   if (VAL1 != VAL2) \
       ^~~~
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:42:19: error: 'class BlockState' has no member named 'value'
  TEST_EQUAL(bs2v3.value("added property"), "value2");
                   ^~~~~
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/../TestHelpers.h:49:7: note: in definition of macro 'TEST_EQUAL'
   if (VAL1 != VAL2) \
       ^~~~
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:43:19: error: 'class BlockState' has no member named 'value'
  TEST_EQUAL(bs3v3.value("added property"), "value3");
                   ^~~~~
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/../TestHelpers.h:49:7: note: in definition of macro 'TEST_EQUAL'
   if (VAL1 != VAL2) \
       ^~~~
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp: In function 'void testDynamicCreation()':
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:59:42: error: no matching function for call to 'BlockState::BlockState(<brace-enclosed initializer list>)'
   BlockState bs1a({{"property", "value"}});
                                          ^
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note: candidate: 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockType'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note: candidate: 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'uint_least16_t' {aka 'short unsigned int'}
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note: candidate: 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:   candidate expects 0 arguments, 1 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(const BlockState&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const BlockState&'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(BlockState&&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockState&&'
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:61:23: error: no matching function for call to 'BlockState::BlockState(Map&)'
   BlockState bs1b(map1);
                       ^
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note: candidate: 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:   no known conversion for argument 1 from 'Map' {aka 'std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >'} to 'BlockType'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note: candidate: 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:   no known conversion for argument 1 from 'Map' {aka 'std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >'} to 'uint_least16_t' {aka 'short unsigned int'}
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note: candidate: 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:   candidate expects 0 arguments, 1 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(const BlockState&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from 'Map' {aka 'std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >'} to 'const BlockState&'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(BlockState&&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from 'Map' {aka 'std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >'} to 'BlockState&&'
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:69:42: error: no matching function for call to 'BlockState::BlockState(<brace-enclosed initializer list>)'
   BlockState bs2a({{"property", "value"}});
                                          ^
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note: candidate: 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockType'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note: candidate: 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'uint_least16_t' {aka 'short unsigned int'}
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note: candidate: 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:   candidate expects 0 arguments, 1 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(const BlockState&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const BlockState&'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(BlockState&&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockState&&'
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:71:34: error: no matching function for call to 'BlockState::BlockState(std::remove_reference<std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >&>::type)'
   BlockState bs2b(std::move(map2));
                                  ^
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note: candidate: 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:   no known conversion for argument 1 from 'std::remove_reference<std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >&>::type' {aka 'std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >'} to 'BlockType'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note: candidate: 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:   no known conversion for argument 1 from 'std::remove_reference<std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >&>::type' {aka 'std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >'} to 'uint_least16_t' {aka 'short unsigned int'}
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note: candidate: 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:   candidate expects 0 arguments, 1 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(const BlockState&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from 'std::remove_reference<std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >&>::type' {aka 'std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >'} to 'const BlockState&'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(BlockState&&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from 'std::remove_reference<std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >&>::type' {aka 'std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >'} to 'BlockState&&'
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:77:41: error: no matching function for call to 'BlockState::BlockState(const char [10], const char [7])'
   BlockState bsSrc("property1", "value1");
                                         ^
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note: candidate: 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note: candidate: 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note: candidate: 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:   candidate expects 0 arguments, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(const BlockState&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(BlockState&&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:78:51: error: no matching function for call to 'BlockState::BlockState(BlockState&, <brace-enclosed initializer list>)'
   BlockState bs3a(bsSrc, {{"property2", "value2"}});
                                                   ^
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note: candidate: 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note: candidate: 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note: candidate: 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:   candidate expects 0 arguments, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(const BlockState&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(BlockState&&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:80:30: error: no matching function for call to 'BlockState::BlockState(BlockState&, Map&)'
   BlockState bs3b(bsSrc, map3);
                              ^
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note: candidate: 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note: candidate: 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note: candidate: 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:   candidate expects 0 arguments, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(const BlockState&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(BlockState&&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp: In function 'void testReplacing()':
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:97:40: error: no matching function for call to 'BlockState::BlockState(const char [10], const char [9])'
  BlockState bs1("property1", "value1v1");
                                        ^
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note: candidate: 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note: candidate: 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note: candidate: 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:   candidate expects 0 arguments, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(const BlockState&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(BlockState&&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:98:49: error: no matching function for call to 'BlockState::BlockState(BlockState&, <brace-enclosed initializer list>)'
  BlockState bs2(bs1, {{"property1", "value1v2"}});
                                                 ^
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note: candidate: 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note: candidate: 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note: candidate: 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:   candidate expects 0 arguments, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(const BlockState&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(BlockState&&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   candidate expects 1 argument, 2 provided
In file included from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:3:
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:99:17: error: 'class BlockState' has no member named 'value'
  TEST_EQUAL(bs2.value("property1"), "value1v2");  // Stored the new one
                 ^~~~~
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/../TestHelpers.h:49:7: note: in definition of macro 'TEST_EQUAL'
   if (VAL1 != VAL2) \
       ^~~~
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:100:17: error: 'class BlockState' has no member named 'value'
  TEST_EQUAL(bs1.value("property1"), "value1v1");  // Didn't replace in the original
                 ^~~~~
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/../TestHelpers.h:49:7: note: in definition of macro 'TEST_EQUAL'
   if (VAL1 != VAL2) \
       ^~~~
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:103:41: error: no matching function for call to 'BlockState::BlockState(BlockState&, <brace-enclosed initializer list>)'
  BlockState bs3(bs1, {{"property1", ""}});
                                         ^
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note: candidate: 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note: candidate: 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note: candidate: 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:   candidate expects 0 arguments, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(const BlockState&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   candidate expects 1 argument, 2 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(BlockState&&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   candidate expects 1 argument, 2 provided
In file included from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:3:
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp: In function 'void testComparison()':
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:118:37: error: no matching function for call to 'BlockState::BlockState(<brace-enclosed initializer list>)'
  TEST_FALSE((BlockState({{"a", "a"}}) < BlockState({{"a", "a"}})));
                                     ^
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/../TestHelpers.h:49:7: note: in definition of macro 'TEST_EQUAL'
   if (VAL1 != VAL2) \
       ^~~~
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:118:2: note: in expansion of macro 'TEST_FALSE'
  TEST_FALSE((BlockState({{"a", "a"}}) < BlockState({{"a", "a"}})));
  ^~~~~~~~~~
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note: candidate: 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockType'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note: candidate: 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'uint_least16_t' {aka 'short unsigned int'}
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note: candidate: 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:   candidate expects 0 arguments, 1 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(const BlockState&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const BlockState&'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(BlockState&&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockState&&'
In file included from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:3:
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:118:64: error: no matching function for call to 'BlockState::BlockState(<brace-enclosed initializer list>)'
  TEST_FALSE((BlockState({{"a", "a"}}) < BlockState({{"a", "a"}})));
                                                                ^
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/../TestHelpers.h:49:7: note: in definition of macro 'TEST_EQUAL'
   if (VAL1 != VAL2) \
       ^~~~
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:118:2: note: in expansion of macro 'TEST_FALSE'
  TEST_FALSE((BlockState({{"a", "a"}}) < BlockState({{"a", "a"}})));
  ^~~~~~~~~~
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note: candidate: 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockType'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note: candidate: 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'uint_least16_t' {aka 'short unsigned int'}
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note: candidate: 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:   candidate expects 0 arguments, 1 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(const BlockState&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const BlockState&'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(BlockState&&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockState&&'
In file included from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:3:
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:119:27: error: no match for 'operator<' (operand types are 'BlockState' and 'BlockState')
  TEST_FALSE((BlockState() < BlockState()));
              ~~~~~~~~~~~~~^~~~~~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/../TestHelpers.h:49:7: note: in definition of macro 'TEST_EQUAL'
   if (VAL1 != VAL2) \
       ^~~~
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:119:2: note: in expansion of macro 'TEST_FALSE'
  TEST_FALSE((BlockState() < BlockState()));
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:120:55: error: no matching function for call to 'BlockState::BlockState(<brace-enclosed initializer list>)'
  TEST_TRUE((BlockState() < BlockState({{"foo", "bar"}})));
                                                       ^
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/../TestHelpers.h:49:7: note: in definition of macro 'TEST_EQUAL'
   if (VAL1 != VAL2) \
       ^~~~
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:120:2: note: in expansion of macro 'TEST_TRUE'
  TEST_TRUE((BlockState() < BlockState({{"foo", "bar"}})));
  ^~~~~~~~~
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note: candidate: 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockType'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note: candidate: 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'uint_least16_t' {aka 'short unsigned int'}
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note: candidate: 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:   candidate expects 0 arguments, 1 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(const BlockState&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const BlockState&'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(BlockState&&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockState&&'
In file included from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:3:
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:121:41: error: no matching function for call to 'BlockState::BlockState(<brace-enclosed initializer list>)'
  TEST_FALSE((BlockState({{"foo", "bar"}}) < BlockState()));
                                         ^
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/../TestHelpers.h:49:7: note: in definition of macro 'TEST_EQUAL'
   if (VAL1 != VAL2) \
       ^~~~
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:121:2: note: in expansion of macro 'TEST_FALSE'
  TEST_FALSE((BlockState({{"foo", "bar"}}) < BlockState()));
  ^~~~~~~~~~
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note: candidate: 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockType'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note: candidate: 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'uint_least16_t' {aka 'short unsigned int'}
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note: candidate: 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:   candidate expects 0 arguments, 1 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(const BlockState&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const BlockState&'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(BlockState&&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockState&&'
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp: In function 'void testComparison2()':
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:139:107: error: no matching function for call to 'BlockState::BlockState(<brace-enclosed initializer list>)'
   v.push_back(BlockState({{std::string(1, static_cast<char>(0x1F)), std::string(1, static_cast<char>(i))}}));
                                                                                                           ^
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note: candidate: 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockType'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note: candidate: 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'uint_least16_t' {aka 'short unsigned int'}
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note: candidate: 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:   candidate expects 0 arguments, 1 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(const BlockState&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const BlockState&'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(BlockState&&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockState&&'
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:141:87: error: no matching function for call to 'BlockState::BlockState(<brace-enclosed initializer list>)'
    {std::string(1, static_cast<char>(0x0F)), std::string(1, static_cast<char>(0x80))}}));
                                                                                       ^
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note: candidate: 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockType'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note: candidate: 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'uint_least16_t' {aka 'short unsigned int'}
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note: candidate: 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:   candidate expects 0 arguments, 1 provided
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(const BlockState&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const BlockState&'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidate: 'constexpr BlockState::BlockState(BlockState&&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'BlockState&&'
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h: In instantiation of 'constexpr bool std::less<_Tp>::operator()(const _Tp&, const _Tp&) const [with _Tp = BlockState]':
/usr/include/c++/8/bits/stl_map.h:497:32:   required from 'std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type& std::map<_Key, _Tp, _Compare, _Alloc>::operator[](const key_type&) [with _Key = BlockState; _Tp = bool; _Compare = std::less<BlockState>; _Alloc = std::allocator<std::pair<const BlockState, bool> >; std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type = bool; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = BlockState]'
/home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:146:12:   required from here
/usr/include/c++/8/bits/stl_function.h:386:20: error: no match for 'operator<' (operand types are 'const BlockState' and 'const BlockState')
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/bits/stl_algobase.h:64,
                 from /usr/include/c++/8/bits/specfun.h:45,
                 from /usr/include/c++/8/cmath:1892,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:112,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_pair.h:454:5: note: candidate: 'template<class _T1, class _T2> constexpr bool std::operator<(const std::pair<_T1, _T2>&, const std::pair<_T1, _T2>&)'
     operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
     ^~~~~~~~
/usr/include/c++/8/bits/stl_pair.h:454:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::pair<_T1, _T2>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/bits/stl_algobase.h:67,
                 from /usr/include/c++/8/bits/specfun.h:45,
                 from /usr/include/c++/8/cmath:1892,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:112,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_iterator.h:308:5: note: candidate: 'template<class _Iterator> constexpr bool std::operator<(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_Iterator>&)'
     operator<(const reverse_iterator<_Iterator>& __x,
     ^~~~~~~~
/usr/include/c++/8/bits/stl_iterator.h:308:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::reverse_iterator<_Iterator>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/bits/stl_algobase.h:67,
                 from /usr/include/c++/8/bits/specfun.h:45,
                 from /usr/include/c++/8/cmath:1892,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:112,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_iterator.h:346:5: note: candidate: 'template<class _IteratorL, class _IteratorR> constexpr bool std::operator<(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_IteratorR>&)'
     operator<(const reverse_iterator<_IteratorL>& __x,
     ^~~~~~~~
/usr/include/c++/8/bits/stl_iterator.h:346:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::reverse_iterator<_Iterator>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/bits/stl_algobase.h:67,
                 from /usr/include/c++/8/bits/specfun.h:45,
                 from /usr/include/c++/8/cmath:1892,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:112,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_iterator.h:1139:5: note: candidate: 'template<class _IteratorL, class _IteratorR> constexpr bool std::operator<(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorR>&)'
     operator<(const move_iterator<_IteratorL>& __x,
     ^~~~~~~~
/usr/include/c++/8/bits/stl_iterator.h:1139:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::move_iterator<_IteratorL>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/bits/stl_algobase.h:67,
                 from /usr/include/c++/8/bits/specfun.h:45,
                 from /usr/include/c++/8/cmath:1892,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:112,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_iterator.h:1145:5: note: candidate: 'template<class _Iterator> constexpr bool std::operator<(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorL>&)'
     operator<(const move_iterator<_Iterator>& __x,
     ^~~~~~~~
/usr/include/c++/8/bits/stl_iterator.h:1145:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::move_iterator<_IteratorL>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/bits/basic_string.h:48,
                 from /usr/include/c++/8/string:52,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/string_view:472:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator<(std::basic_string_view<_CharT, _Traits>, std::basic_string_view<_CharT, _Traits>)'
     operator< (basic_string_view<_CharT, _Traits> __x,
     ^~~~~~~~
/usr/include/c++/8/string_view:472:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'BlockState' is not derived from 'std::basic_string_view<_CharT, _Traits>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/bits/basic_string.h:48,
                 from /usr/include/c++/8/string:52,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/string_view:478:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator<(std::basic_string_view<_CharT, _Traits>, std::__detail::__idt<std::basic_string_view<_CharT, _Traits> >)'
     operator< (basic_string_view<_CharT, _Traits> __x,
     ^~~~~~~~
/usr/include/c++/8/string_view:478:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'BlockState' is not derived from 'std::basic_string_view<_CharT, _Traits>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/bits/basic_string.h:48,
                 from /usr/include/c++/8/string:52,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/string_view:484:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator<(std::__detail::__idt<std::basic_string_view<_CharT, _Traits> >, std::basic_string_view<_CharT, _Traits>)'
     operator< (__detail::__idt<basic_string_view<_CharT, _Traits>> __x,
     ^~~~~~~~
/usr/include/c++/8/string_view:484:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'BlockState' is not derived from 'std::basic_string_view<_CharT, _Traits>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/string:52,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/basic_string.h:6133:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> bool std::operator<(const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>&, const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
     operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
     ^~~~~~~~
/usr/include/c++/8/bits/basic_string.h:6133:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/string:52,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/basic_string.h:6146:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> bool std::operator<(const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>&, const _CharT*)'
     operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
     ^~~~~~~~
/usr/include/c++/8/bits/basic_string.h:6146:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/string:52,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/basic_string.h:6158:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> bool std::operator<(const _CharT*, const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
     operator<(const _CharT* __lhs,
     ^~~~~~~~
/usr/include/c++/8/bits/basic_string.h:6158:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   mismatched types 'const _CharT*' and 'BlockState'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/array:262:5: note: candidate: 'template<class _Tp, long unsigned int _Nm> bool std::operator<(const std::array<_Tp, _Nm>&, const std::array<_Tp, _Nm>&)'
     operator<(const array<_Tp, _Nm>& __a, const array<_Tp, _Nm>& __b)
     ^~~~~~~~
/usr/include/c++/8/array:262:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::array<_Tp, _Nm>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/bits/std_mutex.h:39,
                 from /usr/include/c++/8/condition_variable:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:125,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/system_error:208:3: note: candidate: 'bool std::operator<(const std::error_code&, const std::error_code&)'
   operator<(const error_code& __lhs, const error_code& __rhs) noexcept
   ^~~~~~~~
/usr/include/c++/8/system_error:208:3: note:   no known conversion for argument 1 from 'const BlockState' to 'const std::error_code&'
/usr/include/c++/8/system_error:282:3: note: candidate: 'bool std::operator<(const std::error_condition&, const std::error_condition&)'
   operator<(const error_condition& __lhs,
   ^~~~~~~~
/usr/include/c++/8/system_error:282:3: note:   no known conversion for argument 1 from 'const BlockState' to 'const std::error_condition&'
In file included from /usr/include/c++/8/bits/unique_ptr.h:37,
                 from /usr/include/c++/8/condition_variable:43,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:125,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/tuple:1426:5: note: candidate: 'template<class ... _TElements, class ... _UElements> constexpr bool std::operator<(const std::tuple<_Tps ...>&, const std::tuple<_Elements ...>&)'
     operator<(const tuple<_TElements...>& __t,
     ^~~~~~~~
/usr/include/c++/8/tuple:1426:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::tuple<_Tps ...>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/condition_variable:43,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:125,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/unique_ptr.h:723:5: note: candidate: 'template<class _Tp, class _Dp, class _Up, class _Ep> bool std::operator<(const std::unique_ptr<_Tp, _Dp>&, const std::unique_ptr<_Up, _Ep>&)'
     operator<(const unique_ptr<_Tp, _Dp>& __x,
     ^~~~~~~~
/usr/include/c++/8/bits/unique_ptr.h:723:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::unique_ptr<_Tp, _Dp>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/condition_variable:43,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:125,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/unique_ptr.h:734:5: note: candidate: 'template<class _Tp, class _Dp> bool std::operator<(const std::unique_ptr<_Tp, _Dp>&, std::nullptr_t)'
     operator<(const unique_ptr<_Tp, _Dp>& __x, nullptr_t)
     ^~~~~~~~
/usr/include/c++/8/bits/unique_ptr.h:734:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::unique_ptr<_Tp, _Dp>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/condition_variable:43,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:125,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/unique_ptr.h:740:5: note: candidate: 'template<class _Tp, class _Dp> bool std::operator<(std::nullptr_t, const std::unique_ptr<_Tp, _Dp>&)'
     operator<(nullptr_t, const unique_ptr<_Tp, _Dp>& __x)
     ^~~~~~~~
/usr/include/c++/8/bits/unique_ptr.h:740:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::unique_ptr<_Tp, _Dp>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/bits/shared_ptr.h:52,
                 from /usr/include/c++/8/condition_variable:44,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:125,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/shared_ptr_base.h:1442:5: note: candidate: 'template<class _Tp, class _Up, __gnu_cxx::_Lock_policy _Lp> bool std::operator<(const std::__shared_ptr<_Tp1, _Lp>&, const std::__shared_ptr<_Tp2, _Lp>&)'
     operator<(const __shared_ptr<_Tp, _Lp>& __a,
     ^~~~~~~~
/usr/include/c++/8/bits/shared_ptr_base.h:1442:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::__shared_ptr<_Tp1, _Lp>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/bits/shared_ptr.h:52,
                 from /usr/include/c++/8/condition_variable:44,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:125,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/shared_ptr_base.h:1453:5: note: candidate: 'template<class _Tp, __gnu_cxx::_Lock_policy _Lp> bool std::operator<(const std::__shared_ptr<_Tp, _Lp>&, std::nullptr_t)'
     operator<(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept
     ^~~~~~~~
/usr/include/c++/8/bits/shared_ptr_base.h:1453:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::__shared_ptr<_Tp, _Lp>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/bits/shared_ptr.h:52,
                 from /usr/include/c++/8/condition_variable:44,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:125,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/shared_ptr_base.h:1461:5: note: candidate: 'template<class _Tp, __gnu_cxx::_Lock_policy _Lp> bool std::operator<(std::nullptr_t, const std::__shared_ptr<_Tp, _Lp>&)'
     operator<(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept
     ^~~~~~~~
/usr/include/c++/8/bits/shared_ptr_base.h:1461:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::__shared_ptr<_Tp, _Lp>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/condition_variable:44,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:125,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/shared_ptr.h:413:5: note: candidate: 'template<class _Tp, class _Up> bool std::operator<(const std::shared_ptr<_Tp>&, const std::shared_ptr<_Tp>&)'
     operator<(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept
     ^~~~~~~~
/usr/include/c++/8/bits/shared_ptr.h:413:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::shared_ptr<_Tp>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/condition_variable:44,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:125,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/shared_ptr.h:423:5: note: candidate: 'template<class _Tp> bool std::operator<(const std::shared_ptr<_Tp>&, std::nullptr_t)'
     operator<(const shared_ptr<_Tp>& __a, nullptr_t) noexcept
     ^~~~~~~~
/usr/include/c++/8/bits/shared_ptr.h:423:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::shared_ptr<_Tp>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/condition_variable:44,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:125,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/shared_ptr.h:431:5: note: candidate: 'template<class _Tp> bool std::operator<(std::nullptr_t, const std::shared_ptr<_Tp>&)'
     operator<(nullptr_t, const shared_ptr<_Tp>& __a) noexcept
     ^~~~~~~~
/usr/include/c++/8/bits/shared_ptr.h:431:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::shared_ptr<_Tp>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/deque:64,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:126,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_deque.h:294:5: note: candidate: 'template<class _Tp, class _Ref, class _Ptr> bool std::operator<(const std::_Deque_iterator<_Tp, _Ref, _Ptr>&, const std::_Deque_iterator<_Tp, _Ref, _Ptr>&)'
     operator<(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x,
     ^~~~~~~~
/usr/include/c++/8/bits/stl_deque.h:294:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::_Deque_iterator<_Tp, _Ref, _Ptr>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/deque:64,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:126,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_deque.h:302:5: note: candidate: 'template<class _Tp, class _RefL, class _PtrL, class _RefR, class _PtrR> bool std::operator<(const std::_Deque_iterator<_Tp, _Ref, _Ptr>&, const std::_Deque_iterator<_Tp, _RefR, _PtrR>&)'
     operator<(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x,
     ^~~~~~~~
/usr/include/c++/8/bits/stl_deque.h:302:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::_Deque_iterator<_Tp, _Ref, _Ptr>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/deque:64,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:126,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_deque.h:2295:5: note: candidate: 'template<class _Tp, class _Alloc> bool std::operator<(const std::deque<_Tp, _Alloc>&, const std::deque<_Tp, _Alloc>&)'
     operator<(const deque<_Tp, _Alloc>& __x,
     ^~~~~~~~
/usr/include/c++/8/bits/stl_deque.h:2295:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::deque<_Tp, _Alloc>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/list:63,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:129,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_list.h:2021:5: note: candidate: 'template<class _Tp, class _Alloc> bool std::operator<(const std::__cxx11::list<_Tp, _Alloc>&, const std::__cxx11::list<_Tp, _Alloc>&)'
     operator<(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y)
     ^~~~~~~~
/usr/include/c++/8/bits/stl_list.h:2021:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::__cxx11::list<_Tp, _Alloc>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/bits/node_handle.h:39,
                 from /usr/include/c++/8/bits/stl_tree.h:72,
                 from /usr/include/c++/8/map:60,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:130,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/optional:1297:5: note: candidate: 'template<class _Tp, class _Up> constexpr std::__optional_relop_t<decltype ((declval<_Tp>() < declval<_Up>()))> std::operator<(const std::optional<_Tp>&, const std::optional<_Up>&)'
     operator<(const optional<_Tp>& __lhs, const optional<_Up>& __rhs)
     ^~~~~~~~
/usr/include/c++/8/optional:1297:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::optional<_Tp>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/bits/node_handle.h:39,
                 from /usr/include/c++/8/bits/stl_tree.h:72,
                 from /usr/include/c++/8/map:60,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:130,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/optional:1350:5: note: candidate: 'template<class _Tp> constexpr bool std::operator<(const std::optional<_Tp>&, std::nullopt_t)'
     operator<(const optional<_Tp>& /* __lhs */, nullopt_t) noexcept
     ^~~~~~~~
/usr/include/c++/8/optional:1350:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::optional<_Tp>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/bits/node_handle.h:39,
                 from /usr/include/c++/8/bits/stl_tree.h:72,
                 from /usr/include/c++/8/map:60,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:130,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/optional:1355:5: note: candidate: 'template<class _Tp> constexpr bool std::operator<(std::nullopt_t, const std::optional<_Tp>&)'
     operator<(nullopt_t, const optional<_Tp>& __rhs) noexcept
     ^~~~~~~~
/usr/include/c++/8/optional:1355:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::optional<_Tp>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/bits/node_handle.h:39,
                 from /usr/include/c++/8/bits/stl_tree.h:72,
                 from /usr/include/c++/8/map:60,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:130,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/optional:1415:5: note: candidate: 'template<class _Tp, class _Up> constexpr std::__optional_relop_t<decltype ((declval<_Tp>() < declval<_Up>()))> std::operator<(const std::optional<_Tp>&, const _Up&)'
     operator<(const optional<_Tp>& __lhs, const _Up& __rhs)
     ^~~~~~~~
/usr/include/c++/8/optional:1415:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::optional<_Tp>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/bits/node_handle.h:39,
                 from /usr/include/c++/8/bits/stl_tree.h:72,
                 from /usr/include/c++/8/map:60,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:130,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/optional:1421:5: note: candidate: 'template<class _Tp, class _Up> constexpr std::__optional_relop_t<decltype ((declval<_Up>() < declval<_Tp>()))> std::operator<(const _Up&, const std::optional<_Tp>&)'
     operator<(const _Up& __lhs, const optional<_Tp>& __rhs)
     ^~~~~~~~
/usr/include/c++/8/optional:1421:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::optional<_Tp>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/map:60,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:130,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_tree.h:1559:5: note: candidate: 'template<class _Key, class _Val, class _KeyOfValue, class _Compare, class _Alloc> bool std::operator<(const std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>&, const std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>&)'
     operator<(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x,
     ^~~~~~~~
/usr/include/c++/8/bits/stl_tree.h:1559:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/map:61,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:130,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_map.h:1451:5: note: candidate: 'template<class _Key, class _Tp, class _Compare, class _Alloc> bool std::operator<(const std::map<_Key, _Tp, _Compare, _Allocator>&, const std::map<_Key, _Tp, _Compare, _Allocator>&)'
     operator<(const map<_Key, _Tp, _Compare, _Alloc>& __x,
     ^~~~~~~~
/usr/include/c++/8/bits/stl_map.h:1451:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::map<_Key, _Tp, _Compare, _Allocator>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/map:62,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:130,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_multimap.h:1115:5: note: candidate: 'template<class _Key, class _Tp, class _Compare, class _Alloc> bool std::operator<(const std::multimap<_Key, _Tp, _Compare, _Allocator>&, const std::multimap<_Key, _Tp, _Compare, _Allocator>&)'
     operator<(const multimap<_Key, _Tp, _Compare, _Alloc>& __x,
     ^~~~~~~~
/usr/include/c++/8/bits/stl_multimap.h:1115:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::multimap<_Key, _Tp, _Compare, _Allocator>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/vector:64,
                 from /usr/include/c++/8/queue:61,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:133,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_vector.h:1770:5: note: candidate: 'template<class _Tp, class _Alloc> bool std::operator<(const std::vector<_Tp, _Alloc>&, const std::vector<_Tp, _Alloc>&)'
     operator<(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y)
     ^~~~~~~~
/usr/include/c++/8/bits/stl_vector.h:1770:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::vector<_Tp, _Alloc>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/queue:64,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:133,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_queue.h:348:5: note: candidate: 'template<class _Tp, class _Seq> bool std::operator<(const std::queue<_Tp, _Seq>&, const std::queue<_Tp, _Seq>&)'
     operator<(const queue<_Tp, _Seq>& __x, const queue<_Tp, _Seq>& __y)
     ^~~~~~~~
/usr/include/c++/8/bits/stl_queue.h:348:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::queue<_Tp, _Seq>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/set:61,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:135,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_set.h:975:5: note: candidate: 'template<class _Key, class _Compare, class _Alloc> bool std::operator<(const std::set<_Key, _Compare, _Allocator>&, const std::set<_Key, _Compare, _Allocator>&)'
     operator<(const set<_Key, _Compare, _Alloc>& __x,
     ^~~~~~~~
/usr/include/c++/8/bits/stl_set.h:975:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::set<_Key, _Compare, _Allocator>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /usr/include/c++/8/set:62,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:135,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_multiset.h:960:5: note: candidate: 'template<class _Key, class _Compare, class _Alloc> bool std::operator<(const std::multiset<_Key, _Compare, _Allocator>&, const std::multiset<_Key, _Compare, _Allocator>&)'
     operator<(const multiset<_Key, _Compare, _Alloc>& __x,
     ^~~~~~~~
/usr/include/c++/8/bits/stl_multiset.h:960:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::multiset<_Key, _Compare, _Allocator>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:137,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/thread:291:3: note: candidate: 'bool std::operator<(std::thread::id, std::thread::id)'
   operator<(thread::id __x, thread::id __y) noexcept
   ^~~~~~~~
/usr/include/c++/8/thread:291:3: note:   no known conversion for argument 1 from 'const BlockState' to 'std::thread::id'
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:142,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/variant:982:3: note: candidate: 'template<class ... _Types> constexpr bool std::operator<(const std::variant<_Types ...>&, const std::variant<_Types ...>&)'
   _VARIANT_RELATION_FUNCTION_TEMPLATE(<, less)
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/8/variant:982:3: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/8/string:48,
                 from /usr/include/c++/8/stdexcept:39,
                 from /usr/include/c++/8/array:39,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:122,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/bits/stl_function.h:386:20: note:   'const BlockState' is not derived from 'const std::variant<_Types ...>'
       { return __x < __y; }
                ~~~~^~~~~
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:142,
                 from /home/bearbin/workspace/cuberite_PR-5151/tests/BlockTypeRegistry/BlockStateTest.cpp:1:
/usr/include/c++/8/variant:982:3: note: candidate: 'constexpr bool std::operator<(std::monostate, std::monostate)'
   _VARIANT_RELATION_FUNCTION_TEMPLATE(<, less)
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/8/variant:982:3: note:   no known conversion for argument 1 from 'const BlockState' to 'std::monostate'
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:2:
/home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.h:19:7: error: redefinition of 'class BlockState'
 class BlockState
       ^~~~~~~~~~
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: previous definition of 'class BlockState'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:8:1: error: redefinition of 'BlockState::BlockState()'
 BlockState::BlockState():
 ^~~~~~~~~~
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note: 'constexpr BlockState::BlockState()' previously defined here
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:18:1: error: no declaration matches 'BlockState::BlockState(const AString&, const AString&)'
 BlockState::BlockState(const AString & aKey, const AString & aValue):
 ^~~~~~~~~~
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidates are: 'constexpr BlockState::BlockState(BlockState&&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:                 'constexpr BlockState::BlockState(const BlockState&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:                 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:                 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:                 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: 'class BlockState' defined here
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:19:25: error: expected unqualified-id before ')' token
  mState({{aKey, aValue}}),
                         ^
/home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:28:1: error: no declaration matches 'BlockState::BlockState(std::initializer_list<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >)'
 BlockState::BlockState(std::initializer_list<std::pair<const AString, AString>> aKeysAndValues):
 ^~~~~~~~~~
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidates are: 'constexpr BlockState::BlockState(BlockState&&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:                 'constexpr BlockState::BlockState(const BlockState&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:                 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:                 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:                 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: 'class BlockState' defined here
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:38:1: error: no declaration matches 'BlockState::BlockState(const std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >&)'
 BlockState::BlockState(const std::map<AString, AString> & aKeysAndValues):
 ^~~~~~~~~~
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidates are: 'constexpr BlockState::BlockState(BlockState&&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:                 'constexpr BlockState::BlockState(const BlockState&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:                 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:                 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:                 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: 'class BlockState' defined here
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:48:1: error: no declaration matches 'BlockState::BlockState(std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >&&)'
 BlockState::BlockState(std::map<AString, AString> && aKeysAndValues):
 ^~~~~~~~~~
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidates are: 'constexpr BlockState::BlockState(BlockState&&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:                 'constexpr BlockState::BlockState(const BlockState&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:                 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:                 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:                 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: 'class BlockState' defined here
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:58:1: error: no declaration matches 'BlockState::BlockState(const BlockState&, std::initializer_list<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >)'
 BlockState::BlockState(const BlockState & aCopyFrom, std::initializer_list<std::pair<const AString, AString>> aAdditionalKeysAndValues):
 ^~~~~~~~~~
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidates are: 'constexpr BlockState::BlockState(BlockState&&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:                 'constexpr BlockState::BlockState(const BlockState&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:                 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:                 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:                 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: 'class BlockState' defined here
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:72:1: error: no declaration matches 'BlockState::BlockState(const BlockState&, const std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >&)'
 BlockState::BlockState(const BlockState & aCopyFrom, const std::map<AString, AString> & aAdditionalKeysAndValues):
 ^~~~~~~~~~
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: candidates are: 'constexpr BlockState::BlockState(BlockState&&)'
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note:                 'constexpr BlockState::BlockState(const BlockState&)'
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:18:2: note:                 'BlockState::BlockState(BlockType)'
  BlockState(BlockType a_Type);  // TODO(12xx12) constexpr this
  ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:13:12: note:                 'constexpr BlockState::BlockState(uint_least16_t)'
  constexpr BlockState(uint_least16_t StateID) :
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:11:12: note:                 'constexpr BlockState::BlockState()'
  constexpr BlockState() : ID(0) {}
            ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: 'class BlockState' defined here
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:86:6: error: no declaration matches 'bool BlockState::operator<(const BlockState&) const'
 bool BlockState::operator <(const BlockState & aOther) const
      ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:86:6: note: no functions named 'bool BlockState::operator<(const BlockState&) const'
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: 'class BlockState' defined here
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:132:6: error: no declaration matches 'bool BlockState::operator==(const BlockState&) const'
 bool BlockState::operator ==(const BlockState & aOther) const
      ^~~~~~~~~~
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:23:7: note: candidate is: 'bool BlockState::operator==(BlockState) const'
  bool operator == (BlockState Block) const
       ^~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: 'class BlockState' defined here
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:148:17: error: no declaration matches 'const AString& BlockState::value(const AString&) const'
 const AString & BlockState::value(const AString & aKey) const
                 ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:148:17: note: no functions named 'const AString& BlockState::value(const AString&) const'
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: 'class BlockState' defined here
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:163:8: error: no declaration matches 'UInt32 BlockState::initializeChecksum()'
 UInt32 BlockState::initializeChecksum()
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:163:8: note: no functions named 'UInt32 BlockState::initializeChecksum()'
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: 'class BlockState' defined here
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:182:6: error: no declaration matches 'void BlockState::removeEmptyKeys()'
 void BlockState::removeEmptyKeys()
      ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:182:6: note: no functions named 'void BlockState::removeEmptyKeys()'
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: 'class BlockState' defined here
 struct BlockState
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:201:8: error: no declaration matches 'UInt32 BlockState::partialChecksum(const AString&)'
 UInt32 BlockState::partialChecksum(const AString & aString)
        ^~~~~~~~~~
/home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:201:8: note: no functions named 'UInt32 BlockState::partialChecksum(const AString&)'
In file included from /home/bearbin/workspace/cuberite_PR-5151/src/Globals.h:397,
                 from /home/bearbin/workspace/cuberite_PR-5151/src/Bindings/BlockState.cpp:1:
/home/bearbin/workspace/cuberite_PR-5151/src/BlockState.h:9:8: note: 'class BlockState' defined here
 struct BlockState
        ^~~~~~~~~~
make[2]: *** [tests/BlockTypeRegistry/CMakeFiles/BlockStateTest.dir/build.make:76: tests/BlockTypeRegistry/CMakeFiles/BlockStateTest.dir/__/__/src/Bindings/BlockState.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[ 22%] Building CXX object Tools/NoiseSpeedTest/CMakeFiles/NoiseSpeedTest.dir/__/__/src/LoggerListeners.cpp.o
make[2]: *** [tests/BlockTypeRegistry/CMakeFiles/BlockStateTest.dir/build.make:63: tests/BlockTypeRegistry/CMakeFiles/BlockStateTest.dir/BlockStateTest.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1904: tests/BlockTypeRegistry/CMakeFiles/BlockStateTest.dir/all] Error 2
[ 22%] Building CXX object Tools/NoiseSpeedTest/CMakeFiles/NoiseSpeedTest.dir/__/__/src/OSSupport/CriticalSection.cpp.o
[ 22%] Building CXX object Tools/NoiseSpeedTest/CMakeFiles/NoiseSpeedTest.dir/__/__/src/OSSupport/File.cpp.o
[ 22%] Building CXX object Tools/NoiseSpeedTest/CMakeFiles/NoiseSpeedTest.dir/__/__/src/OSSupport/StackTrace.cpp.o
[ 22%] Building CXX object Tools/NoiseSpeedTest/CMakeFiles/NoiseSpeedTest.dir/__/__/src/OSSupport/WinStackWalker.cpp.o
[ 22%] Building CXX object Tools/NoiseSpeedTest/CMakeFiles/NoiseSpeedTest.dir/__/__/src/Noise/Noise.cpp.o
[ 23%] Building CXX object Tools/NoiseSpeedTest/CMakeFiles/NoiseSpeedTest.dir/__/__/src/StringUtils.cpp.o
[ 23%] Linking CXX executable ../../bin/NoiseSpeedTest
[ 23%] Built target NoiseSpeedTest
make: *** [Makefile:141: all] Error 2