警惕模板类的长度截断编译警告

不要小看长度截断警告,虽然它不会造成运行上的问题,却会给调试带来大麻烦.

 

例如

1>V:\WorkBench\Boost\boost/multi_index/ordered_index.hpp(566): warning C4503: “boost::foreach_detail_::and_”: 超出修饰名的长度,名称被截断

1> V:\WorkBench\Boost\boost/multi_index/ordered_index.hpp(566): warning C4503: “boost::foreach_detail_::or_”: 超出修饰名的长度,名称被截断

 

长度截断造成的, 长度截断会导致调试信息失准, 在跟踪调试的时候会误导程序员.

降低长度截断问题的几个方法:

1. 不在对话框或者类中声明嵌套数据结构,并放入模板,这样会造成模板类解析长度大幅飙升.

2. 要放入模板的数据结构,名字应较为简洁.

posted @ 2012-08-25 15:51  胖胖熊  阅读(1182)  评论(0编辑  收藏  举报