gpt4 book ai didi

visual-c++ - 获取模板lambda参数的返回值,如何简化代码?

转载 作者:行者123 更新时间:2023-12-04 06:42:26 25 4
gpt4 key购买 nike

这是我的技巧:

template<typename F, typename TArg>
auto get_return_value(F * f = NULL, TArg * arg = NULL)
-> decltype((*f)(*arg));

使用示例:

template<typename F, typename T>
decltype(get_return_value<F,T>()) applyFtoT(F f, T t)
{
return f(t);
}

如果 F 是 lambda:

int b = applyFtoT([](int a){return a*2}, 10);
// b == 20

我认为函数 get_return_value 看起来很丑...如何简化它?

最佳答案

看起来您可以通过像这样更改 applyFtoT 的声明来消除对 get_return_value 的需要:

template<typename F, typename T>
auto applyFtoT(F f, T t) -> decltype(f(t))
{
return f(t);
}

关于visual-c++ - 获取模板lambda参数的返回值,如何简化代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8462475/

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