У меня есть шаблонный код, который использует lexical_cast.
Теперь я хочу удалить все вызовы lexical_cast (потому что они плохо работают с /clr).
Мне нужно привести объект между std::string и их значением.
Итак, первое направление простое (T _from, std::string _to):
std::ostringstream os;
os << _from;
_to = os.str();
Но я не могу придумать способ сделать это в общем случае из строки в любой тип (мне нужно что-то общее, что будет работать с шаблонами, не может просто использовать специализации для каждого типа и использовать такие функции, как atoi
)
Изменить:
Конечно, я пытался использовать ostringstream в противоположном направлении. Я получаю эту ошибку:
ошибка C2784: 'std::basic_istream‹_Elem,_Traits> &std::operator >>(std::basic_istream‹_Elem,_Traits> &&,_Elem *)': не удалось вывести аргумент шаблона для 'std::basic_istream‹_Elem, _Traits> &&' из 'std::ostringstream'