gpt4 book ai didi

c++ - typedefing 函数返回类型

转载 作者:太空宇宙 更新时间:2023-11-03 10:41:49 27 4
gpt4 key购买 nike

假设我有一个返回依赖类型的模板函数。像这样的东西:

template <class T>
typename std::result_of<T()>::type
foo()
{
std::result_of<T()>::type retVal;
// Some mind blowing code...
return retVal;
}

如您所见,我不得不写两次返回类型,一次是在函数类型中,另一次是在为返回值声明局部变量时。

有没有办法在函数签名中 typedef 这种类型,这样该类型将只声明一次(无代码重复)并且仅在函数内部可见和可用(签名和函数体) ?类似的东西(警告!前面是伪代码,请不要生气或受到启发):

template <class T>
typedef typename std::result_of<T()>::type FooReturnType
FooReturnType foo()
{
FooReturnType retVal;
// Some mind blowing code...
return retVal;
}

编辑:我仅限于 C++11 编译器。

谢谢

最佳答案

template <class T>
typename std::result_of<T()>::type
foo()
{
decltype(foo()) retVal;
// Some mind blowing code...
return retVal;
}

关于c++ - typedefing 函数返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34399239/

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