Поскольку std :: to_string не работает для меня, и так как я работаю над очень сложной средой на данный момент (я работаю на Android, используя эмулятор терминала Linux), я решил оставить его сломанным и использовать вместо него пользовательскую функцию (я нашел его в Интернете).std :: объект stringstream непризнанный в функции замены std :: to_string
Вот точный код, я использую:
#include <sstream>
namespace patch {
template <typename T>
std::string to_string(const T &n);
std::stringstream stm;
stm << n;
return stm.str();
}
}
Я компиляции с помощью этих тегов:
g++ -std=c++11 -g -Wall -Wextra -pedantic
И я получаю эти ошибки:
unknown type name 'stm'; did you mean 'tm'?
stm << n;
^~~
(тогда в примечании tm
объявлено где-то в include/time.h
)
expected unqualified-id
return stm.str();
^
А затем также ошибка «посторонней замыкающей скобки» для последней фигурной скобки, которая закрывает скобки пространства имен.
Как я понимаю, он не распознает строку stm << n;
как метод operator <<
, используемый на объекте std::stringstream
, но вместо этого, как некоторая переменная, по какой-либо причине.
Почему именно я получаю эти ошибки? Есть ли способ их исправить? Если нет, что я могу использовать для замены даже этого решения?
ли вы включить? У вас также отсутствует открывающая скобка для функции, и после нее не должно быть точки с запятой. –
Я почему-то сомневаюсь, что с 'std :: to_string' было что-то не так. – Biffen
@Retired Ninja ouch. Я скопировал и вставил пространство имен из декларации в определение, и я забыл изменить его, я думаю. В любом случае да, '' был включен, и нет, 'std :: to_string' не был найден нигде. –
user6245072