Pan*_*nch 2 c++ gcc boost gcc-warning
在我的项目的一个头文件中,以下行包含在inline方法中
typedef boost::archive::iterators::transform_width<boost::archive::iterators::binary_from_base64< boost::archive::iterators::remove_whitespace<std::string::const_iterator>>, 8, 6> Base64ToBin;
Run Code Online (Sandbox Code Playgroud)
当我使用gcc 4.8.2编译它时,我收到以下错误:
错误:'boost :: archive :: iterators :: remove_whitespace <__ gnu_cxx :: __ normal_iterator >>'有一个字段'boost :: archive :: iterators :: remove_whitespace <__ gnu_cxx :: __ normal_iterator >>> ::'其类型使用匿名命名空间[-Werror]
我真的很努力,但无法解决这个问题,同样来自link1和link2,看起来这是一个较低版本的gcc的问题.有人可以建议如何使这个警告保持沉默或者克服这个警告.我正在使用-Werror标志编译.
这看起来像是一个正确的警告.因为代码位于标题中,所以它将包含在多个文件中,但匿名命名空间对于每个文件都是唯一的.这意味着该类型在任何地方都没有相同的定义.
解决方案:将相关代码移动到.cpp文件.
| 归档时间: |
|
| 查看次数: |
4211 次 |
| 最近记录: |