gpt4 book ai didi

c++ - 结合 boost::lexical_cast 和 std::transform

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:06:52 25 4
gpt4 key购买 nike

我想写这样的东西,不能编译:

std::vector<A> as;
std::vector<B> bs( as.size() );
std::transform( as.beginn(), as.end(), bs.begin(), boost::lexical_cast<B> );

但这行不通,所以我创建了一个仿函数来为我做这件事:

template<typename Dest>
struct lexical_transform
{
template<typename Src>
Dest operator()( const Src& src ) const
{
return boost::lexical_cast<Dest>( src );
}
};

有更简单的方法吗?

最佳答案

lexical_cast 有两个模板参数:目标类型和源类型。在正常使用情况下,第二个是从调用中推导出来的。

但是,这里要获取函数的地址,需要指定所有的模板参数:

std::transform( as.begin(), as.end(), bs.begin(), boost::lexical_cast<B, A> );

关于c++ - 结合 boost::lexical_cast 和 std::transform,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2258834/

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