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