std::distance引出迭代器使用问题
今天使用std::distance颠倒first和last参数,导致死循环。distance实际上是根据trait来计算distance,如果是forward 类型,使用还是使用++和!=方式,而颠倒参数导致!=永远不会成立
关于vartype
项目中的配置项读取时通过vartype的,vartype支持很多隐式类型隐式转换,在转set、map时发现数据项的次序发生改变。最后发现开始使用配置项初始化时使用vec,而我在优化时使用set、map来加快查找,但是数据项发生转型时次序发生改变。
关于避免引入依赖关系
由于枚举的引入会导致枚举与对应文件的依赖关系,尤其是在h文件中。直接在cpp文件中用匿名namespace封装使用enum的全局函数,文件内使用。这样避免了不必要的依赖关系。