gpt4 book ai didi

c++ - 将 std::forward 作为默认参数传递?

转载 作者:行者123 更新时间:2023-11-30 02:00:21 28 4
gpt4 key购买 nike

考虑以下将函数作为参数的函数。

template <class Function = std::plus<int> > 
void apply(Function&& f = Function());

在这里std::plus<int>是应用的默认函数。 std::plus<int>是一个函数对象,一切正常。

现在,我想通过std::forward<int>作为默认参数。 std::forward<int>不是函数对象,这是一个函数指针。怎么做?

template <class Function = /* SOMETHING */ > 
void apply(Function&& f = /* SOMETHING */);

最佳答案

指向std::forward<int> 的函数指针的类型是int &&(*)(int &) .所以你的函数看起来像这样:

template<class T = int &&(*)(int &)>
void apply(T &&t = &std::forward<int>);

看看 std::forward 是如何声明的:http://en.cppreference.com/w/cpp/utility/forward

关于c++ - 将 std::forward 作为默认参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15217272/

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