gpt4 book ai didi

c++ - std::result_of 参数类型

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

这个问题我已经有一段时间了。假设我们有一个人为的功能:

template<typename F>
std::result_of_t<std::decay_t<F>(???)> transform(F&& f)
{
static const int num = 42;
return std::forward<F>(f)(num);
}

我不确定的是我应该为 ??? 部分使用 int 还是 const int& 。同样,对于这个函数:

template<typename F>
std::result_of_t<std::decay_t<F>(???)> transform(F&& f)
{
ExpensiveType foo;
return std::forward<F>(f)(std::move(foo));
}

对于 ??? 部分,我应该使用 ExpensiveType 还是 ExpensiveType&&

最佳答案

使用自动!

C++14:

template < typename F >
auto transform(F&& f)
{
constexpr auto num = 42;
return std::forward<F>(f)(num);
}

C++11:

template < typename F >
auto transform(F&& f) -> decltype(std::forward<F>(f)(42))
{
// ... same body
}

关于c++ - std::result_of 参数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37913724/

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