0
我有一個非常有趣的問題,在Mac上編譯一個小程序(GCC 4.2)。下面的函數只能將字符串或字符串傳入字符串流,而不是其他任何東西(int,double,float等)。事實上,如果我嘗試將int轉換爲字符串,則會設置失敗標誌。std :: stringstream GCC異常行爲
但是,除去在XCode中爲調試模式默認設置的預處理器標誌:_GLIBCXX_DEBUG=1
將產生所需的結果/正確的行爲。
這裏是我正在談論的簡單功能。值是類型T的模板變量。經過int,double,float(不工作),char和字符串(工作)的測試。
template < typename T >
const std::string Attribute<T>::getValueAsString() const
{
std::ostringstream stringValue;
stringValue << value;
return stringValue.str();
}
任何想法,我做錯了,爲什麼這不起作用,或預處理標誌確實使這不再工作是什麼?
謝謝!