我有使用lexical_cast的模板化代码。
现在我想删除所有lexical_cast调用(因为它与/ clr不兼容)。
我需要在std :: string和它们的值之间转换对象。
所以,第一个方向很简单(T _from,std :: string _to):
std::ostringstream os;
os << _from;
_to = os.str();
但是我想不出从字符串到任何类型的一般方法(我需要一些可以使用模板的泛型,不能只为每种类型使用特化并使用像{{1}这样的函数})
修改
当然我尝试在相反方向使用ostringstream。我收到这个错误:
错误C2784:'std :: basic_istream&lt; _Elem,_Traits&gt; &amp; std :: operator&gt;&gt;(std :: basic_istream&lt; _Elem,_Traits&gt;&amp;&amp;,_ Elem *)':无法推断'std :: basic_istream&lt; _Elem,_Traits&gt;的模板参数&安培;&安培;”来自'std :: ostringstream'
答案 0 :(得分:3)
lexical_cast
使用两个方向的流媒体<<
和>>
。你也可以这样做:
std::stringstream sstr;
sstr << _from;
sstr >> _to;
请确保包括完整性检查。