Я использую std :: unique_ptr в этом фрагменте кода, который компилируется и выполняется так, как я ожидал.
std::stringstream out;
out << std::setw(3) << std::setfill('0') << i;
std::unique_ptr s(new std::string(out.str()));
s->insert(s->end()-2, 1, '.');
return std::move(s);
Однако я получаю сообщения об ошибках от Eclipse CDT. В четвертой строке: метод 'insert' не может быть разрешен, метод 'end' не может быть разрешен.
Раньше я также получал ошибки при появлении имени std :: unique_ptr. Это было решено путем установки символа препроцессора __ GXX_EXPERIMENTAL_CXX0X __
и перестройки индекса, как описано в ответе на этот вопрос.
Есть ли способ заставить CDT понять, что s имеет тип std :: string * и что он должен искать s-> insert () и s-> end () в std :: string?
PS : Я использую Eclipse 3.7.1 и CDT 8.0.0.201106081058
PS2: Я хотел бы опубликовать это как комментарий к указанному выше вопросу, но я не могу, предположительно потому, что я новый пользователь