gpt4 book ai didi

c++ - 替代 lexical_cast(std::string)

转载 作者:搜寻专家 更新时间:2023-10-31 01:56:35 24 4
gpt4 key购买 nike

我有使用 lexical_cast 的模板化代码。

现在我想删除所有的 lexical_cast 调用(因为它不能很好地与/clr 一起工作)。

我需要在 std::string 和它们的值之间转换对象。

所以,第一个方向很简单(T _from,std::string _to):

std::ostringstream os;
os << _from;
_to = os.str();

但我想不出一种方法来实现从字符串到任何类型的通用化(我需要一些通用的可以与模板一起使用的东西,不能只对每种类型使用专门化并使用像 atoi 这样的函数)

编辑:

当然,我尝试过在相反的方向使用 ostringstream。我收到此错误:

error C2784: 'std::basic_istream<_Elem,_Traits> &std::operator >>(std::basic_istream<_Elem,_Traits> &&,_Elem *)':无法推导出 'std::basic_istream 的模板参数<_Elem,_Traits> &&' 来自 'std::ostringstream'

最佳答案

lexical_cast双向使用流媒体,<<>> .你可以这样做:

std::stringstream sstr;
sstr << _from;
sstr >> _to;

不过一定要包括健全性检查。

关于c++ - 替代 lexical_cast<T>(std::string),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6888975/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com