不同的类重载模板函数经常发生重定义错误
在学习使用BOOST1.75 json时,
经常重载Value_to_tag,value_from_tag 发生多重定义错误
需要在类的定义头文件内增加namespace 防止多重定义
特别注意 inline 的使用
namespace myNamespace{//非常重要
class myClass{
...
friend int tag_invoke(const value_from_tag&, value& jv, const myClass& title);
....
};
inline int tag_invoke(const value_from_tag&, value& jv, const CTitleViewHistorySerial& title){}
template<class T>
T tag_invoke(const value_to_tag<T>&, const value& jv){};//一般化模板定义
template<class T> //不能少
myclass tag_invoke(const value_to_tag<T>&, const value& jv){};//特化模板定义
}//命名空间结束