我在Visual Studio 2013中使用了here(Color文件夹)中的代码来捕获Kinect v2中的颜色数据。但是当我想运行代码时,util.h
文件中的这些代码行会导致编译错误:
#define ERROR_CHECK( ret ) \
if (FAILED(ret)){
\
std::stringstream ss; \
std::ss << "failed " #ret " " << std::hex << ret << std::endl; \
throw std::runtime_error(ss.str().c_str()); \
}
我的Visual Studio在下面绘制了ss
一条红线,并写成:namespace "std" has no member "ss" below <<: expected a ";" and below throw: expected a declaration
。
这部分代码是什么,我该如何解决?
答案 0 :(得分:0)
此代码有误,将std::ss
更改为ss
会有所帮助:
#define ERROR_CHECK( ret ) \
if (FAILED(ret)) { \
\
std::stringstream ss; \
ss << "failed " #ret " " << std::hex << ret << std::endl; \
throw std::runtime_error(ss.str().c_str()); \
}
代码段中的另一个错误显示if(statement)
后缺少续行。
使用此功能时,请确保包含<sstream>
。
宏似乎已在original code中修复,但其他示例文件夹中可能存在util.h
的其他错误版本。
答案 1 :(得分:-1)
它可能不是您想要的,但如果您只是评论每一行,您的程序是否有效?它只是&#34;只是&#34;一个字符串流,只有在我发现错误时才打印出来。如果你真的想看到输出,请用某种printf()替换它。
#define ERROR_CHECK( ret )
if (FAILED(ret)){
// std::stringstream ss;
// std::ss << "failed " #ret " " << std::hex << ret << std::endl;
// throw std::runtime_error(ss.str().c_str());
printf("Error : FAILED(ret)");
}
这样你的代码就会编译,但你没有错误的原始抛出IFF发生错误