【发布时间】:2010-12-08 14:44:21
【问题描述】:
在 Mac (GCC 4.2) 上编译一个简短的小程序时,我遇到了一个非常有趣的问题。下面的函数只会将字符或字符串流式传输到字符串流中,而不会流式传输任何其他内容(int、double、float 等)。事实上,如果我尝试将例如 int 转换为字符串,则会设置失败标志。
但是,删除预处理器标志:_GLIBCXX_DEBUG=1,在 XCode 中默认设置为调试模式,将产生所需的结果/正确的行为。
这是我正在谈论的简单功能。 value 是 T 类型的模板变量。针对 int、double、float(不工作)、char 和 strings(工作)进行了测试。
template < typename T >
const std::string Attribute<T>::getValueAsString() const
{
std::ostringstream stringValue;
stringValue << value;
return stringValue.str();
}
任何想法我做错了什么,为什么这不起作用,或者预处理器标志做了什么使它不再起作用?
谢谢!
【问题讨论】:
标签: gcc stringstream