2016-09-15 107 views
-5

由於std :: to_string不適用於我,並且此刻我正在處理一個非常困難的環境(我正在使用Android一個Linux終端模擬器),我決定讓它壞掉,用一個用戶自制的函數代替它(我發現它在線)。在std :: to_string替換函數中無法識別的std :: stringstream對象

下面是我使用的確切代碼:

g++ -std=c++11 -g -Wall -Wextra -pedantic 

而且我得到這些錯誤:

unknown type name 'stm'; did you mean 'tm'? 
       stm << n; 
       ^~~ 
我使用這些標籤編譯它

#include <sstream> 

namespace patch { 
    template <typename T> 
    std::string to_string(const T &n); 
     std::stringstream stm; 
     stm << n; 
     return stm.str(); 
    } 
} 

(然後關於tm的聲明在include/time.h中被聲明)

expected unqualified-id 
       return stm.str(); 
       ^

然後也是關閉命名空間大括號的最後一個大括號的「多餘的大括號」錯誤。

據我所知,它不承認線stm << n;作爲方法operator <<std::stringstream對象上使用,但作爲某些原因的一些變量聲明。

爲什麼我得到這些錯誤?有沒有辦法解決它們?如果沒有,我可以用什麼來取代這個解決方案?

+3

你是否包括?你也失去了一個功能的大括號,它不應該有一個分號。 –

+0

我以某種方式懷疑'std :: to_string'開頭有什麼問題。 – Biffen

+0

@退休的忍者。我將聲明中的名稱空間複製並粘貼到了定義中,我忘了更改它。無論如何是的,''被包括在內,並且沒有,'std :: to_string'在任何地方都沒有找到。 – user6245072

回答

0

看起來像你有一個分號,左花括號應該是打開功能範圍

相關問題