Boost.Serialization - BOOST_CLASS_VERSION
以下のコードを書いたとする.
namespace foo { class bar { // ... private: // serialize の実装 }; BOOST_CLASS_VERSION(bar, 1); }
すると、以下の様なエラーが大量に出てくる.
error: 'foo::boost::**' has not been declared
どうやらこれはBOOST_CLASS_VERSIONをグローバル名前空間に書かないと起こるようである.
実装を読んでいないのではっきりとは言えないが、BOOST_CLASS_VERSIONを用いる際は名前空間の外にだそう.
namespace foo { // ... } BOOST_CLASS_VERSION(foo::bar, 1);