我在Mac上编译一个简短的小程序(GCC 4.2)时遇到了一个非常有趣的问题。下面的函数只会将字符串或字符串流式传输到字符串流中,而不会传递给其他任何东西(int,double,float等)。实际上,如果我尝试将int转换为字符串,则设置fail标志。
但是,删除预处理程序标志:_GLIBCXX_DEBUG=1
,默认情况下在XCode中为调试模式设置,将产生所需的结果/正确行为。
这是我正在谈论的简单功能。 value是类型T的模板变量。测试为int,double,float(不工作),char和字符串(工作)。
template < typename T >
const std::string Attribute<T>::getValueAsString() const
{
std::ostringstream stringValue;
stringValue << value;
return stringValue.str();
}
任何想法我做错了,为什么这不起作用,或预处理器标志做了什么让它不再起作用?
谢谢!
答案 0 :(得分:0)