, 8, 6> Base64ToBin-6ren">
gpt4 book ai didi

c++ - 如何使 "whose type uses the anonymous namespace [-Werror]"gcc 版本 4.8.2 静音

转载 作者:行者123 更新时间:2023-12-03 15:52:58 29 4
gpt4 key购买 nike

在我的项目头文件之一中,以下行包含在 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;

当我用 gcc 4.8.2 编译它时,我收到以下错误:

error: ‘boost::archive::iterators::remove_whitespace<__gnu_cxx::__normal_iterator > >’ has a field ‘boost::archive::iterators::remove_whitespace<__gnu_cxx::__normal_iterator > >::’ whose type uses the anonymous namespace [-Werror]



我真的很努力,但无法解决这个问题,同样来自 link1link2看起来这是 gcc 版本较低的问题。有人可以建议如何消除此警告或克服它。我正在使用 -Werror 标志编译。

最佳答案

这看起来是一个正确的警告。因为代码在一个头文件中,它将被包含在多个文件中,但匿名命名空间对于每个文件都是唯一的。这意味着该类型在任何地方都没有相同的定义。

解决方法:将相关代码移动到.cpp文件中。

关于c++ - 如何使 "whose type uses the anonymous namespace [-Werror]"gcc 版本 4.8.2 静音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37722850/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com