std::stringstream GCC异常行为

std::stringstream GCC异常行为,gcc,stringstream,Gcc,Stringstream,我在Mac(GCC4.2)上编译一个简短的小程序时遇到了一个非常有趣的问题。下面的函数只将字符或字符串流式传输到stringstream中,而不是其他任何内容(int、double、float等)。事实上,如果我尝试将例如int转换为字符串,则会设置失败标志 但是,删除预处理器标志:\u GLIBCXX\u DEBUG=1(默认情况下在XCode中为调试模式设置)将产生所需的结果/正确的行为 下面是我所说的简单函数。value是类型为T的模板变量。测试int、double、float(不工作)、

我在Mac(GCC4.2)上编译一个简短的小程序时遇到了一个非常有趣的问题。下面的函数只将字符或字符串流式传输到stringstream中,而不是其他任何内容(int、double、float等)。事实上,如果我尝试将例如int转换为字符串,则会设置失败标志

但是,删除预处理器标志:
\u GLIBCXX\u DEBUG=1
(默认情况下在XCode中为调试模式设置)将产生所需的结果/正确的行为

下面是我所说的简单函数。value是类型为T的模板变量。测试int、double、float(不工作)、char和string(工作)

模板
常量std::字符串属性::getValueAsString()常量
{
std::ostringstream stringValue;

stringValue已知的苹果bug。问题与:

template < typename T >
const std::string Attribute<T>::getValueAsString() const
{
 std::ostringstream stringValue;
 stringValue << value;
 return stringValue.str();
}