Skip to content

Include ordering results in compilation errors #249

@davidchappelle

Description

@davidchappelle

Here is a small sample program that shows how include ordering can result in a significant amount of compiler errors. Forcing a strict ordering on includes seems to be a very poor approach:

#include <msgpack_fwd.hpp>

enum class color : int 
{
    red,
    green,
    blue
};

#include <msgpack/object.hpp>
MSGPACK_ADD_ENUM(color);
//#include <msgpack/object.hpp>

#include <msgpack.hpp>

int main(int argc, char** argv)
{
    msgpack::object o(color::red);
    return 0;
}

If you compile this program you will get the following output. Swapping out the msgpack/object.hpp includes will get rid of the errors.

dchappelle@orion:build$ g++ -I ../third-party/msgpack-c/include -std=c++11 ../main.cpp -o main
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp: In instantiation of ‘msgpack::v1::object::object(const T&) [with T = color]’:
../main.cpp:18:33:   required from here
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: error: no matching function for call to ‘operator<<(msgpack::v1::object&, const color&)’
     msgpack::operator<<(*this, v);
                                 ^
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note: candidates are:
../third-party/msgpack-c/include/msgpack/object.hpp:276:13: note: template<class T> void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, const T&)
 inline void operator<< (msgpack::object::with_zone& o, const T& v)
             ^
../third-party/msgpack-c/include/msgpack/object.hpp:276:13: note:   template argument deduction/substitution failed:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   cannot convert ‘*(msgpack::v1::object*)this’ (type ‘msgpack::v1::object’) to type ‘msgpack::v1::object::with_zone&’
     msgpack::operator<<(*this, v);
                                 ^
../third-party/msgpack-c/include/msgpack/object.hpp:199:13: note: void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, const msgpack::v1::object&)
 inline void operator<< (msgpack::object::with_zone& o, const msgpack::object& v)
             ^
../third-party/msgpack-c/include/msgpack/object.hpp:199:13: note:   no known conversion for argument 1 from ‘msgpack::v1::object’ to ‘msgpack::v1::object::with_zone&’
../third-party/msgpack-c/include/msgpack/object.hpp:269:13: note: void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, const msgpack::v1::object::with_zone&)
 inline void operator<< (msgpack::object::with_zone& o, const msgpack::object::with_zone& v)
             ^
../third-party/msgpack-c/include/msgpack/object.hpp:269:13: note:   no known conversion for argument 1 from ‘msgpack::v1::object’ to ‘msgpack::v1::object::with_zone&’
../third-party/msgpack-c/include/msgpack/object.hpp:564:33: note: template<class Stream> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const msgpack::v1::object&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const msgpack::object& v)
                                 ^
../third-party/msgpack-c/include/msgpack/object.hpp:564:33: note:   template argument deduction/substitution failed:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
../third-party/msgpack-c/include/msgpack/object.hpp:631:26: note: template<class Stream> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const msgpack::v1::object::with_zone&)
 msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const msgpack::object::with_zone& v)
                          ^
../third-party/msgpack-c/include/msgpack/object.hpp:631:26: note:   template argument deduction/substitution failed:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/object.hpp:23:0,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/pack.hpp:144:33: note: template<class Stream, class T> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const T&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const T& v)
                                 ^
../third-party/msgpack-c/include/msgpack/pack.hpp:144:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:23:0,
                 from ../third-party/msgpack-c/include/msgpack/type.hpp:5,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:141:33: note: template<class Stream> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, char)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, char v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:141:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:23:0,
                 from ../third-party/msgpack-c/include/msgpack/type.hpp:5,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:146:33: note: template<class Stream> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, signed char)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, signed char v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:146:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:23:0,
                 from ../third-party/msgpack-c/include/msgpack/type.hpp:5,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:150:33: note: template<class Stream> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, short int)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, signed short v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:150:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:23:0,
                 from ../third-party/msgpack-c/include/msgpack/type.hpp:5,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:154:33: note: template<class Stream> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, int)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, signed int v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:154:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:23:0,
                 from ../third-party/msgpack-c/include/msgpack/type.hpp:5,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:158:33: note: template<class Stream> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, long int)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, signed long v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:158:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:23:0,
                 from ../third-party/msgpack-c/include/msgpack/type.hpp:5,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:162:33: note: template<class Stream> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, long long int)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, signed long long v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:162:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:23:0,
                 from ../third-party/msgpack-c/include/msgpack/type.hpp:5,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:167:33: note: template<class Stream> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, unsigned char)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, unsigned char v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:167:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:23:0,
                 from ../third-party/msgpack-c/include/msgpack/type.hpp:5,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:171:33: note: template<class Stream> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, short unsigned int)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, unsigned short v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:171:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:23:0,
                 from ../third-party/msgpack-c/include/msgpack/type.hpp:5,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:175:33: note: template<class Stream> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, unsigned int)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, unsigned int v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:175:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:23:0,
                 from ../third-party/msgpack-c/include/msgpack/type.hpp:5,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:179:33: note: template<class Stream> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, long unsigned int)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, unsigned long v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:179:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:23:0,
                 from ../third-party/msgpack-c/include/msgpack/type.hpp:5,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:183:33: note: template<class Stream> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, long long unsigned int)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, unsigned long long v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:183:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:23:0,
                 from ../third-party/msgpack-c/include/msgpack/type.hpp:5,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:187:13: note: void msgpack::v1::operator<<(msgpack::v1::object&, char)
 inline void operator<< (msgpack::object& o, char v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:187:13: note:   no known conversion for argument 2 from ‘const color’ to ‘char’
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:191:13: note: void msgpack::v1::operator<<(msgpack::v1::object&, signed char)
 inline void operator<< (msgpack::object& o, signed char v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:191:13: note:   no known conversion for argument 2 from ‘const color’ to ‘signed char’
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:203:13: note: void msgpack::v1::operator<<(msgpack::v1::object&, short int)
 inline void operator<< (msgpack::object& o, signed short v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:203:13: note:   no known conversion for argument 2 from ‘const color’ to ‘short int’
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:215:13: note: void msgpack::v1::operator<<(msgpack::v1::object&, int)
 inline void operator<< (msgpack::object& o, signed int v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:215:13: note:   no known conversion for argument 2 from ‘const color’ to ‘int’
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:227:13: note: void msgpack::v1::operator<<(msgpack::v1::object&, long int)
 inline void operator<< (msgpack::object& o, signed long v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:227:13: note:   no known conversion for argument 2 from ‘const color’ to ‘long int’
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:239:13: note: void msgpack::v1::operator<<(msgpack::v1::object&, long long int)
 inline void operator<< (msgpack::object& o, signed long long v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:239:13: note:   no known conversion for argument 2 from ‘const color’ to ‘long long int’
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:251:13: note: void msgpack::v1::operator<<(msgpack::v1::object&, unsigned char)
 inline void operator<< (msgpack::object& o, unsigned char v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:251:13: note:   no known conversion for argument 2 from ‘const color’ to ‘unsigned char’
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:254:13: note: void msgpack::v1::operator<<(msgpack::v1::object&, short unsigned int)
 inline void operator<< (msgpack::object& o, unsigned short v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:254:13: note:   no known conversion for argument 2 from ‘const color’ to ‘short unsigned int’
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:257:13: note: void msgpack::v1::operator<<(msgpack::v1::object&, unsigned int)
 inline void operator<< (msgpack::object& o, unsigned int v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:257:13: note:   no known conversion for argument 2 from ‘const color’ to ‘unsigned int’
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:260:13: note: void msgpack::v1::operator<<(msgpack::v1::object&, long unsigned int)
 inline void operator<< (msgpack::object& o, unsigned long v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:260:13: note:   no known conversion for argument 2 from ‘const color’ to ‘long unsigned int’
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:263:13: note: void msgpack::v1::operator<<(msgpack::v1::object&, long long unsigned int)
 inline void operator<< (msgpack::object& o, unsigned long long v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:263:13: note:   no known conversion for argument 2 from ‘const color’ to ‘long long unsigned int’
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:268:13: note: void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, char)
 inline void operator<< (msgpack::object::with_zone& o, char v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:268:13: note:   no known conversion for argument 1 from ‘msgpack::v1::object’ to ‘msgpack::v1::object::with_zone&’
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:272:13: note: void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, signed char)
 inline void operator<< (msgpack::object::with_zone& o, signed char v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:272:13: note:   no known conversion for argument 1 from ‘msgpack::v1::object’ to ‘msgpack::v1::object::with_zone&’
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:275:13: note: void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, short int)
 inline void operator<< (msgpack::object::with_zone& o, signed short v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:275:13: note:   no known conversion for argument 1 from ‘msgpack::v1::object’ to ‘msgpack::v1::object::with_zone&’
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:278:13: note: void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, int)
 inline void operator<< (msgpack::object::with_zone& o, signed int v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:278:13: note:   no known conversion for argument 1 from ‘msgpack::v1::object’ to ‘msgpack::v1::object::with_zone&’
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:281:13: note: void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, long int)
 inline void operator<< (msgpack::object::with_zone& o, signed long v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:281:13: note:   no known conversion for argument 1 from ‘msgpack::v1::object’ to ‘msgpack::v1::object::with_zone&’
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:284:13: note: void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, const long long int&)
 inline void operator<< (msgpack::object::with_zone& o, const signed long long& v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:284:13: note:   no known conversion for argument 1 from ‘msgpack::v1::object’ to ‘msgpack::v1::object::with_zone&’
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:288:13: note: void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, unsigned char)
 inline void operator<< (msgpack::object::with_zone& o, unsigned char v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:288:13: note:   no known conversion for argument 1 from ‘msgpack::v1::object’ to ‘msgpack::v1::object::with_zone&’
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:291:13: note: void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, short unsigned int)
 inline void operator<< (msgpack::object::with_zone& o, unsigned short v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:291:13: note:   no known conversion for argument 1 from ‘msgpack::v1::object’ to ‘msgpack::v1::object::with_zone&’
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:294:13: note: void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, unsigned int)
 inline void operator<< (msgpack::object::with_zone& o, unsigned int v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:294:13: note:   no known conversion for argument 1 from ‘msgpack::v1::object’ to ‘msgpack::v1::object::with_zone&’
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:297:13: note: void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, long unsigned int)
 inline void operator<< (msgpack::object::with_zone& o, unsigned long v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:297:13: note:   no known conversion for argument 1 from ‘msgpack::v1::object’ to ‘msgpack::v1::object::with_zone&’
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:300:13: note: void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, const long long unsigned int&)
 inline void operator<< (msgpack::object::with_zone& o, const unsigned long long& v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/int.hpp:300:13: note:   no known conversion for argument 1 from ‘msgpack::v1::object’ to ‘msgpack::v1::object::with_zone&’
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:2:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/bool.hpp:37:33: note: template<class Stream> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const bool&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const bool& v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/bool.hpp:37:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:2:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/bool.hpp:44:13: note: void msgpack::v1::operator<<(msgpack::v1::object&, bool)
 inline void operator<< (msgpack::object& o, bool v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/bool.hpp:44:13: note:   no known conversion for argument 2 from ‘const color’ to ‘bool’
../third-party/msgpack-c/include/msgpack/adaptor/bool.hpp:50:13: note: void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, bool)
 inline void operator<< (msgpack::object::with_zone& o, bool v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/bool.hpp:50:13: note:   no known conversion for argument 1 from ‘msgpack::v1::object’ to ‘msgpack::v1::object::with_zone&’
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:3:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/char_ptr.hpp:32:33: note: template<class Stream> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const char*)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const char* v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/char_ptr.hpp:32:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:3:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/char_ptr.hpp:40:13: note: void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, const char*)
 inline void operator<< (msgpack::object::with_zone& o, const char* v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/char_ptr.hpp:40:13: note:   no known conversion for argument 1 from ‘msgpack::v1::object’ to ‘msgpack::v1::object::with_zone&’
../third-party/msgpack-c/include/msgpack/adaptor/char_ptr.hpp:50:13: note: void msgpack::v1::operator<<(msgpack::v1::object&, const char*)
 inline void operator<< (msgpack::object& o, const char* v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/char_ptr.hpp:50:13: note:   no known conversion for argument 2 from ‘const color’ to ‘const char*’
../third-party/msgpack-c/include/msgpack/adaptor/char_ptr.hpp:59:24: note: template<class Stream> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, char*)
 inline packer<Stream>& operator<< (packer<Stream>& o, char* v)
                        ^
../third-party/msgpack-c/include/msgpack/adaptor/char_ptr.hpp:59:24: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:3:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/char_ptr.hpp:64:13: note: void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, char*)
 inline void operator<< (object::with_zone& o, char* v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/char_ptr.hpp:64:13: note:   no known conversion for argument 1 from ‘msgpack::v1::object’ to ‘msgpack::v1::object::with_zone&’
../third-party/msgpack-c/include/msgpack/adaptor/char_ptr.hpp:69:13: note: void msgpack::v1::operator<<(msgpack::v1::object&, char*)
 inline void operator<< (object& o, char* v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/char_ptr.hpp:69:13: note:   no known conversion for argument 2 from ‘const color’ to ‘char*’
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:4:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/deque.hpp:46:33: note: template<class Stream, class T> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const std::deque<T>&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const std::deque<T>& v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/deque.hpp:46:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:4:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/deque.hpp:58:13: note: template<class T> void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, const std::deque<T>&)
 inline void operator<< (msgpack::object::with_zone& o, const std::deque<T>& v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/deque.hpp:58:13: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   cannot convert ‘*(msgpack::v1::object*)this’ (type ‘msgpack::v1::object’) to type ‘msgpack::v1::object::with_zone&’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:5:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:87:33: note: template<class Stream> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const fix_int8&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const type::fix_int8& v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:87:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:5:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:91:33: note: template<class Stream> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const fix_int16&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const type::fix_int16& v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:91:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:5:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:95:33: note: template<class Stream> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const fix_int32&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const type::fix_int32& v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:95:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:5:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:99:33: note: template<class Stream> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const fix_int64&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const type::fix_int64& v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:99:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:5:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:104:33: note: template<class Stream> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const fix_uint8&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const type::fix_uint8& v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:104:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:5:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:108:33: note: template<class Stream> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const fix_uint16&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const type::fix_uint16& v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:108:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:5:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:112:33: note: template<class Stream> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const fix_uint32&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const type::fix_uint32& v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:112:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:5:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:116:33: note: template<class Stream> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const fix_uint64&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const type::fix_uint64& v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:116:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:5:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:120:13: note: void msgpack::v1::operator<<(msgpack::v1::object&, msgpack::v1::type::fix_int8)
 inline void operator<< (msgpack::object& o, type::fix_int8 v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:120:13: note:   no known conversion for argument 2 from ‘const color’ to ‘msgpack::v1::type::fix_int8 {aka msgpack::v1::type::fix_int<signed char>}’
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:132:13: note: void msgpack::v1::operator<<(msgpack::v1::object&, msgpack::v1::type::fix_int16)
 inline void operator<< (msgpack::object& o, type::fix_int16 v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:132:13: note:   no known conversion for argument 2 from ‘const color’ to ‘msgpack::v1::type::fix_int16 {aka msgpack::v1::type::fix_int<short int>}’
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:144:13: note: void msgpack::v1::operator<<(msgpack::v1::object&, msgpack::v1::type::fix_int32)
 inline void operator<< (msgpack::object& o, type::fix_int32 v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:144:13: note:   no known conversion for argument 2 from ‘const color’ to ‘msgpack::v1::type::fix_int32 {aka msgpack::v1::type::fix_int<int>}’
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:156:13: note: void msgpack::v1::operator<<(msgpack::v1::object&, msgpack::v1::type::fix_int64)
 inline void operator<< (msgpack::object& o, type::fix_int64 v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:156:13: note:   no known conversion for argument 2 from ‘const color’ to ‘msgpack::v1::type::fix_int64 {aka msgpack::v1::type::fix_int<long int>}’
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:169:13: note: void msgpack::v1::operator<<(msgpack::v1::object&, msgpack::v1::type::fix_uint8)
 inline void operator<< (msgpack::object& o, type::fix_uint8 v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:169:13: note:   no known conversion for argument 2 from ‘const color’ to ‘msgpack::v1::type::fix_uint8 {aka msgpack::v1::type::fix_int<unsigned char>}’
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:172:13: note: void msgpack::v1::operator<<(msgpack::v1::object&, msgpack::v1::type::fix_uint16)
 inline void operator<< (msgpack::object& o, type::fix_uint16 v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:172:13: note:   no known conversion for argument 2 from ‘const color’ to ‘msgpack::v1::type::fix_uint16 {aka msgpack::v1::type::fix_int<short unsigned int>}’
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:175:13: note: void msgpack::v1::operator<<(msgpack::v1::object&, msgpack::v1::type::fix_uint32)
 inline void operator<< (msgpack::object& o, type::fix_uint32 v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:175:13: note:   no known conversion for argument 2 from ‘const color’ to ‘msgpack::v1::type::fix_uint32 {aka msgpack::v1::type::fix_int<unsigned int>}’
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:178:13: note: void msgpack::v1::operator<<(msgpack::v1::object&, msgpack::v1::type::fix_uint64)
 inline void operator<< (msgpack::object& o, type::fix_uint64 v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:178:13: note:   no known conversion for argument 2 from ‘const color’ to ‘msgpack::v1::type::fix_uint64 {aka msgpack::v1::type::fix_int<long unsigned int>}’
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:182:13: note: void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, msgpack::v1::type::fix_int8)
 inline void operator<< (msgpack::object::with_zone& o, type::fix_int8 v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:182:13: note:   no known conversion for argument 1 from ‘msgpack::v1::object’ to ‘msgpack::v1::object::with_zone&’
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:185:13: note: void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, msgpack::v1::type::fix_int16)
 inline void operator<< (msgpack::object::with_zone& o, type::fix_int16 v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:185:13: note:   no known conversion for argument 1 from ‘msgpack::v1::object’ to ‘msgpack::v1::object::with_zone&’
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:188:13: note: void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, msgpack::v1::type::fix_int32)
 inline void operator<< (msgpack::object::with_zone& o, type::fix_int32 v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:188:13: note:   no known conversion for argument 1 from ‘msgpack::v1::object’ to ‘msgpack::v1::object::with_zone&’
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:191:13: note: void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, msgpack::v1::type::fix_int64)
 inline void operator<< (msgpack::object::with_zone& o, type::fix_int64 v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:191:13: note:   no known conversion for argument 1 from ‘msgpack::v1::object’ to ‘msgpack::v1::object::with_zone&’
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:195:13: note: void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, msgpack::v1::type::fix_uint8)
 inline void operator<< (msgpack::object::with_zone& o, type::fix_uint8 v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:195:13: note:   no known conversion for argument 1 from ‘msgpack::v1::object’ to ‘msgpack::v1::object::with_zone&’
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:198:13: note: void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, msgpack::v1::type::fix_uint16)
 inline void operator<< (msgpack::object::with_zone& o, type::fix_uint16 v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:198:13: note:   no known conversion for argument 1 from ‘msgpack::v1::object’ to ‘msgpack::v1::object::with_zone&’
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:201:13: note: void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, msgpack::v1::type::fix_uint32)
 inline void operator<< (msgpack::object::with_zone& o, type::fix_uint32 v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:201:13: note:   no known conversion for argument 1 from ‘msgpack::v1::object’ to ‘msgpack::v1::object::with_zone&’
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:204:13: note: void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, msgpack::v1::type::fix_uint64)
 inline void operator<< (msgpack::object::with_zone& o, type::fix_uint64 v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/fixint.hpp:204:13: note:   no known conversion for argument 1 from ‘msgpack::v1::object’ to ‘msgpack::v1::object::with_zone&’
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:6:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/float.hpp:50:33: note: template<class Stream> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const float&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const float& v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/float.hpp:50:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:6:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/float.hpp:75:33: note: template<class Stream> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const double&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const double& v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/float.hpp:75:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:6:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/float.hpp:82:13: note: void msgpack::v1::operator<<(msgpack::v1::object&, float)
 inline void operator<< (msgpack::object& o, float v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/float.hpp:82:13: note:   no known conversion for argument 2 from ‘const color’ to ‘float’
../third-party/msgpack-c/include/msgpack/adaptor/float.hpp:88:13: note: void msgpack::v1::operator<<(msgpack::v1::object&, double)
 inline void operator<< (msgpack::object& o, double v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/float.hpp:88:13: note:   no known conversion for argument 2 from ‘const color’ to ‘double’
../third-party/msgpack-c/include/msgpack/adaptor/float.hpp:94:13: note: void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, float)
 inline void operator<< (msgpack::object::with_zone& o, float v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/float.hpp:94:13: note:   no known conversion for argument 1 from ‘msgpack::v1::object’ to ‘msgpack::v1::object::with_zone&’
../third-party/msgpack-c/include/msgpack/adaptor/float.hpp:97:13: note: void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, double)
 inline void operator<< (msgpack::object::with_zone& o, double v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/float.hpp:97:13: note:   no known conversion for argument 1 from ‘msgpack::v1::object’ to ‘msgpack::v1::object::with_zone&’
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:8:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/list.hpp:46:33: note: template<class Stream, class T> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const std::list<T>&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const std::list<T>& v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/list.hpp:46:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:8:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/list.hpp:58:13: note: template<class T> void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, const std::list<T>&)
 inline void operator<< (msgpack::object::with_zone& o, const std::list<T>& v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/list.hpp:58:13: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   cannot convert ‘*(msgpack::v1::object*)this’ (type ‘msgpack::v1::object’) to type ‘msgpack::v1::object::with_zone&’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:9:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/map.hpp:66:33: note: template<class Stream, class K, class V> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const msgpack::v1::type::assoc_vector<K, V>&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const type::assoc_vector<K,V>& v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/map.hpp:66:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:9:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/map.hpp:79:13: note: template<class K, class V> void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, const msgpack::v1::type::assoc_vector<K, V>&)
 inline void operator<< (msgpack::object::with_zone& o, const type::assoc_vector<K,V>& v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/map.hpp:79:13: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   cannot convert ‘*(msgpack::v1::object*)this’ (type ‘msgpack::v1::object’) to type ‘msgpack::v1::object::with_zone&’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:9:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/map.hpp:126:33: note: template<class Stream, class K, class V> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const std::map<K, V>&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const std::map<K,V>& v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/map.hpp:126:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:9:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/map.hpp:139:13: note: template<class K, class V> void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, const std::map<K, V>&)
 inline void operator<< (msgpack::object::with_zone& o, const std::map<K,V>& v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/map.hpp:139:13: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   cannot convert ‘*(msgpack::v1::object*)this’ (type ‘msgpack::v1::object’) to type ‘msgpack::v1::object::with_zone&’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:9:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/map.hpp:180:33: note: template<class Stream, class K, class V> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const std::multimap<K, V>&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const std::multimap<K,V>& v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/map.hpp:180:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:9:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/map.hpp:193:13: note: template<class K, class V> void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, const std::multimap<K, V>&)
 inline void operator<< (msgpack::object::with_zone& o, const std::multimap<K,V>& v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/map.hpp:193:13: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   cannot convert ‘*(msgpack::v1::object*)this’ (type ‘msgpack::v1::object’) to type ‘msgpack::v1::object::with_zone&’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/adaptor/msgpack_tuple.hpp:26:0,
                 from ../third-party/msgpack-c/include/msgpack/type.hpp:18,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/detail/cpp11_msgpack_tuple.hpp:123:32: note: template<class Stream, class ... Args> const msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const msgpack::v1::type::tuple<Args ...>&)
 const msgpack::packer<Stream>& operator<< (
                                ^
../third-party/msgpack-c/include/msgpack/adaptor/detail/cpp11_msgpack_tuple.hpp:123:32: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/adaptor/msgpack_tuple.hpp:26:0,
                 from ../third-party/msgpack-c/include/msgpack/type.hpp:18,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/detail/cpp11_msgpack_tuple.hpp:199:13: note: template<class ... Args> void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, const msgpack::v1::type::tuple<Args ...>&)
 inline void operator<< (
             ^
../third-party/msgpack-c/include/msgpack/adaptor/detail/cpp11_msgpack_tuple.hpp:199:13: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   cannot convert ‘*(msgpack::v1::object*)this’ (type ‘msgpack::v1::object’) to type ‘msgpack::v1::object::with_zone&’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:10:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/nil.hpp:42:33: note: template<class Stream> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const msgpack::v1::type::nil&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const type::nil&)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/nil.hpp:42:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:10:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/nil.hpp:48:13: note: void msgpack::v1::operator<<(msgpack::v1::object&, msgpack::v1::type::nil)
 inline void operator<< (msgpack::object& o, type::nil)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/nil.hpp:48:13: note:   no known conversion for argument 2 from ‘const color’ to ‘msgpack::v1::type::nil’
../third-party/msgpack-c/include/msgpack/adaptor/nil.hpp:53:13: note: void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, msgpack::v1::type::nil)
 inline void operator<< (msgpack::object::with_zone& o, type::nil v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/nil.hpp:53:13: note:   no known conversion for argument 1 from ‘msgpack::v1::object’ to ‘msgpack::v1::object::with_zone&’
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:11:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/pair.hpp:40:33: note: template<class Stream, class T1, class T2> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const std::pair<_Tp1, _Tp2>&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const std::pair<T1, T2>& v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/pair.hpp:40:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:11:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/pair.hpp:49:13: note: template<class T1, class T2> void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, const std::pair<_T1, _T2>&)
 inline void operator<< (msgpack::object::with_zone& o, const std::pair<T1, T2>& v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/pair.hpp:49:13: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   cannot convert ‘*(msgpack::v1::object*)this’ (type ‘msgpack::v1::object’) to type ‘msgpack::v1::object::with_zone&’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:12:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/raw.hpp:76:33: note: template<class Stream> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const msgpack::v1::type::raw_ref&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const msgpack::type::raw_ref& v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/raw.hpp:76:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:12:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/raw.hpp:83:13: note: void msgpack::v1::operator<<(msgpack::v1::object&, const msgpack::v1::type::raw_ref&)
 inline void operator<< (msgpack::object& o, const msgpack::type::raw_ref& v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/raw.hpp:83:13: note:   no known conversion for argument 2 from ‘const color’ to ‘const msgpack::v1::type::raw_ref&’
../third-party/msgpack-c/include/msgpack/adaptor/raw.hpp:90:13: note: void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, const msgpack::v1::type::raw_ref&)
 inline void operator<< (msgpack::object::with_zone& o, const msgpack::type::raw_ref& v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/raw.hpp:90:13: note:   no known conversion for argument 1 from ‘msgpack::v1::object’ to ‘msgpack::v1::object::with_zone&’
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:13:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/set.hpp:47:33: note: template<class Stream, class T> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const std::set<T>&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const std::set<T>& v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/set.hpp:47:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:13:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/set.hpp:59:13: note: template<class T> void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, const std::set<T>&)
 inline void operator<< (msgpack::object::with_zone& o, const std::set<T>& v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/set.hpp:59:13: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   cannot convert ‘*(msgpack::v1::object*)this’ (type ‘msgpack::v1::object’) to type ‘msgpack::v1::object::with_zone&’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:13:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/set.hpp:97:33: note: template<class Stream, class T> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const std::multiset<T>&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const std::multiset<T>& v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/set.hpp:97:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:13:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/set.hpp:109:13: note: template<class T> void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, const std::multiset<T>&)
 inline void operator<< (msgpack::object::with_zone& o, const std::multiset<T>& v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/set.hpp:109:13: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   cannot convert ‘*(msgpack::v1::object*)this’ (type ‘msgpack::v1::object’) to type ‘msgpack::v1::object::with_zone&’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:14:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/string.hpp:48:33: note: template<class Stream> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const string&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const std::string& v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/string.hpp:48:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:14:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/string.hpp:56:13: note: void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, const string&)
 inline void operator<< (msgpack::object::with_zone& o, const std::string& v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/string.hpp:56:13: note:   no known conversion for argument 1 from ‘msgpack::v1::object’ to ‘msgpack::v1::object::with_zone&’
../third-party/msgpack-c/include/msgpack/adaptor/string.hpp:66:13: note: void msgpack::v1::operator<<(msgpack::v1::object&, const string&)
 inline void operator<< (msgpack::object& o, const std::string& v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/string.hpp:66:13: note:   no known conversion for argument 2 from ‘const color’ to ‘const string& {aka const std::basic_string<char>&}’
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:15:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/vector.hpp:50:33: note: template<class Stream, class T> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const std::vector<T>&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const std::vector<T>& v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/vector.hpp:50:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:15:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/vector.hpp:62:13: note: template<class T> void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, const std::vector<_RealType>&)
 inline void operator<< (msgpack::object::with_zone& o, const std::vector<T>& v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/vector.hpp:62:13: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   cannot convert ‘*(msgpack::v1::object*)this’ (type ‘msgpack::v1::object’) to type ‘msgpack::v1::object::with_zone&’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:16:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/vector_bool.hpp:46:33: note: template<class Stream> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const std::vector<bool>&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const std::vector<bool>& v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/vector_bool.hpp:46:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:16:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/vector_bool.hpp:56:13: note: void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, const std::vector<bool>&)
 inline void operator<< (msgpack::object::with_zone& o, const std::vector<bool>& v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/vector_bool.hpp:56:13: note:   no known conversion for argument 1 from ‘msgpack::v1::object’ to ‘msgpack::v1::object::with_zone&’
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:17:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/vector_char.hpp:50:33: note: template<class Stream> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const std::vector<char>&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const std::vector<char>& v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/vector_char.hpp:50:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:17:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/vector_char.hpp:59:13: note: void msgpack::v1::operator<<(msgpack::v1::object&, const std::vector<char>&)
 inline void operator<< (msgpack::object& o, const std::vector<char>& v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/vector_char.hpp:59:13: note:   no known conversion for argument 2 from ‘const color’ to ‘const std::vector<char>&’
../third-party/msgpack-c/include/msgpack/adaptor/vector_char.hpp:67:13: note: void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, const std::vector<char>&)
 inline void operator<< (msgpack::object::with_zone& o, const std::vector<char>& v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/vector_char.hpp:67:13: note:   no known conversion for argument 1 from ‘msgpack::v1::object’ to ‘msgpack::v1::object::with_zone&’
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:28:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/array.hpp:50:33: note: template<class Stream, class T, long unsigned int N> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const std::array<_Tp, _Nm>&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const std::array<T, N>& v) {
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/array.hpp:50:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:28:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/array.hpp:58:13: note: template<class T, long unsigned int N> void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, const std::array<_Tp, _Nm>&)
 inline void operator<< (msgpack::object::with_zone& o, const std::array<T, N>& v) {
             ^
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/array.hpp:58:13: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   cannot convert ‘*(msgpack::v1::object*)this’ (type ‘msgpack::v1::object’) to type ‘msgpack::v1::object::with_zone&’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:29:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/array_char.hpp:51:33: note: template<class Stream, long unsigned int N> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const std::array<char, N>&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const std::array<char, N>& v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/array_char.hpp:51:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:29:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/array_char.hpp:61:13: note: template<long unsigned int N> void msgpack::v1::operator<<(msgpack::v1::object&, const std::array<char, N>&)
 inline void operator<< (msgpack::object& o, const std::array<char, N>& v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/array_char.hpp:61:13: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   mismatched types ‘const std::array<char, N>’ and ‘const color’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:29:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/array_char.hpp:70:13: note: template<long unsigned int N> void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, const std::array<char, N>&)
 inline void operator<< (msgpack::object::with_zone& o, const std::array<char, N>& v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/array_char.hpp:70:13: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   cannot convert ‘*(msgpack::v1::object*)this’ (type ‘msgpack::v1::object’) to type ‘msgpack::v1::object::with_zone&’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:30:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/forward_list.hpp:46:33: note: template<class Stream, class T> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const std::forward_list<T>&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const std::forward_list<T>& v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/forward_list.hpp:46:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:30:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/forward_list.hpp:55:13: note: template<class T> void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, const std::forward_list<T>&)
 inline void operator<< (msgpack::object::with_zone& o, const std::forward_list<T>& v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/forward_list.hpp:55:13: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   cannot convert ‘*(msgpack::v1::object*)this’ (type ‘msgpack::v1::object’) to type ‘msgpack::v1::object::with_zone&’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:31:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/tuple.hpp:61:39: note: template<class Stream, class ... Args> const msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const std::tuple<_Elements ...>&)
 inline const msgpack::packer<Stream>& operator<< (
                                       ^
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/tuple.hpp:61:39: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:31:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/tuple.hpp:138:13: note: template<class ... Args> void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, const std::tuple<_Elements ...>&)
 inline void operator<< (
             ^
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/tuple.hpp:138:13: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   cannot convert ‘*(msgpack::v1::object*)this’ (type ‘msgpack::v1::object’) to type ‘msgpack::v1::object::with_zone&’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:32:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/unordered_map.hpp:48:33: note: template<class Stream, class K, class V> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const std::unordered_map<K, V>&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const std::unordered_map<K,V>& v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/unordered_map.hpp:48:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:32:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/unordered_map.hpp:61:13: note: template<class K, class V> void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, const std::unordered_map<K, V>&)
 inline void operator<< (msgpack::object::with_zone& o, const std::unordered_map<K,V>& v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/unordered_map.hpp:61:13: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   cannot convert ‘*(msgpack::v1::object*)this’ (type ‘msgpack::v1::object’) to type ‘msgpack::v1::object::with_zone&’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:32:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/unordered_map.hpp:102:33: note: template<class Stream, class K, class V> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const std::unordered_multimap<K, V>&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const std::unordered_multimap<K,V>& v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/unordered_map.hpp:102:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:32:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/unordered_map.hpp:115:13: note: template<class K, class V> void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, const std::unordered_multimap<K, V>&)
 inline void operator<< (msgpack::object::with_zone& o, const std::unordered_multimap<K,V>& v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/unordered_map.hpp:115:13: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   cannot convert ‘*(msgpack::v1::object*)this’ (type ‘msgpack::v1::object’) to type ‘msgpack::v1::object::with_zone&’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:33:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/unordered_set.hpp:47:33: note: template<class Stream, class T> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const std::unordered_set<T>&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const std::unordered_set<T>& v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/unordered_set.hpp:47:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:33:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/unordered_set.hpp:59:13: note: template<class T> void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, const std::unordered_set<T>&)
 inline void operator<< (msgpack::object::with_zone& o, const std::unordered_set<T>& v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/unordered_set.hpp:59:13: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   cannot convert ‘*(msgpack::v1::object*)this’ (type ‘msgpack::v1::object’) to type ‘msgpack::v1::object::with_zone&’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:33:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/unordered_set.hpp:97:33: note: template<class Stream, class T> msgpack::v1::packer<Stream>& msgpack::v1::operator<<(msgpack::v1::packer<Stream>&, const std::unordered_multiset<T>&)
 inline msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const std::unordered_multiset<T>& v)
                                 ^
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/unordered_set.hpp:97:33: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   ‘msgpack::v1::object’ is not derived from ‘msgpack::v1::packer<Stream>’
     msgpack::operator<<(*this, v);
                                 ^
In file included from ../third-party/msgpack-c/include/msgpack/type.hpp:33:0,
                 from ../third-party/msgpack-c/include/msgpack/object.hpp:710,
                 from ../main.cpp:2:
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/unordered_set.hpp:109:13: note: template<class T> void msgpack::v1::operator<<(msgpack::v1::object::with_zone&, const std::unordered_multiset<T>&)
 inline void operator<< (msgpack::object::with_zone& o, const std::unordered_multiset<T>& v)
             ^
../third-party/msgpack-c/include/msgpack/adaptor/cpp11/unordered_set.hpp:109:13: note:   template argument deduction/substitution failed:
In file included from ../main.cpp:2:0:
../third-party/msgpack-c/include/msgpack/object.hpp:491:33: note:   cannot convert ‘*(msgpack::v1::object*)this’ (type ‘msgpack::v1::object’) to type ‘msgpack::v1::object::with_zone&’
     msgpack::operator<<(*this, v);
                                 ^

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions