2016-04-25 22 views
0

为什么下面的代码输出“未知错误”?我期望其他一些消息,如“操作超时”或其他描述性错误。升压系统类型为errc :: timed_out的make_error_code的消息为“未知错误”

操作系统:Windows 7 升压:1.57

#include <iostream> 
#include "boost/system/system_error.hpp" 

void main() 
{ 
    boost::system::error_code ec = make_error_code(boost::system::errc::timed_out); 
    auto message = ec.message(); 
    std::cout << message << std::endl; 
} 
+0

请发布最少的完整示例。这意味着我可以编译而不必猜测。 –

+0

代码更新 - 感谢您的建议 – klmurphy72

回答

0

建议您检查包含路径,库路径和项目设置。

我已校正程序(主必须返回一个int)和下铛编译:

#include <iostream> 
#include <boost/system/system_error.hpp> 

int main() 
{ 
    boost::system::error_code ec = make_error_code(boost::system::errc::timed_out); 
    auto message = ec.message(); 
    std::cout << message << std::endl; 
} 

命令行:

c++ -std=c++14 -I${HOME}/local/include -L${HOME}/local/lib -lboost_system 

结果:

Operation timed out 

我升压安装安装到前缀$ {HOME} /本地

+0

我认为这可能是Windows的事情。 – klmurphy72

+0

@ klmurphy72您是否尝试将错误分配给error_condition而不是error_code? –

+0

我将error_code更改为error_condition,结果相同。这对我来说似乎是正确的,因为错误值和类别保持不变。至少我是这么理解的。两种方法都以“generic_error_category :: message(int ev)”结尾。 – klmurphy72