小编Jor*_*enV的帖子

转换函数使用std :: array of doubles作为参数,或者将double作为参数分别转换

我想打一个方法convert,需要一个通用的函数bar(可以是std::function,lambda,functor,...),并将其转换为一个std::function<double(std::array<double, 3>)>.该功能bar可以是:

  • 一个函数std::array<double, 3>作为一个参数并返回一个double.在这种情况下,convert写起来并不难:

码:

template<typename F>
std::function<double(std::array<double, 3>)> convert (F& bar)
{
    std::function<double(std::array<double,3>)> bar_converted = bar;
    return bar_converted;
}
Run Code Online (Sandbox Code Playgroud)
  • 一个函数以三个独立的doubles为参数并返回一个double.同样在这种情况下,convert写起来并不困难:

码:

template<typename F>
std::function<double(std::array<double, 3>)> convert(F& bar)
{
    std::function<double(std::array<double,3>)> bar_converted;
    auto array_bar = [bar]( std::array<double, 3> x)->double{ return bar(x[0], x[1], x[2]); };
    bar_converted = array_bar;
    return bar_converted;
}
Run Code Online (Sandbox Code Playgroud)

问题是我不知道如何将这两种convert方法结合起来,或者这是否可能?

c++ type-conversion std-function c++14

2
推荐指数
1
解决办法
62
查看次数

标签 统计

c++ ×1

c++14 ×1

std-function ×1

type-conversion ×1