gpt4 book ai didi

c++ - boost::lexical_cast 编译时出现警告

转载 作者:太空狗 更新时间:2023-10-29 21:05:37 25 4
gpt4 key购买 nike

编译以下内容:

// file main.cpp

#include <string>
#include <boost/lexical_cast.hpp>

int main()
{
boost::lexical_cast<std::string>( 656.16 );
return 0;
}

屈服于此:

/usr/local/include/boost/lexical_cast.hpp:1184: warning: ISO C++ does not support the ‘%lg’ printf format

为什么?如何避免此警告?

最佳答案

I GCC,有一个简单的技巧可以消除来自特定库 header 的所有警告。只需将它们视为系统 header 。据我所知,这是安全的,我将其作为标准实践类(class)。

也就是说,调整您的命令行以使用 -isystem 而不是 -I 来指定 Boost header 位置。其他一切都保持不变。

例如,这是从我的一个项目的 Makefile 中获取的:

BOOST=/usr/local/Cellar/boost/1.48.0
CXXFLAGS+=-isystem$(BOOST)

注意:重要的是您通常不要在您的项目中忽略警告。相反,您应该将所有警告都视为错误 (-Werror) 并尽可能多地发出警告(例如 -Wall -Wextra)。以上仅禁用由 Boost 引起的警告,而不是来自您自己的代码的警告。这是应该的。

关于c++ - boost::lexical_cast 编译时出现警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9514592/

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