gpt4 book ai didi

c++ - 我在接受解压的可变参数模板参数的函数上使用延迟返回类型时遇到问题

转载 作者:太空宇宙 更新时间:2023-11-04 11:45:27 24 4
gpt4 key购买 nike

我在接受解压的可变模板参数的函数上使用延迟返回类型时遇到问题。这不会在 Nov CTP Visual Studio 中编译。

template <typename Function, typename ...Args>
auto invoke ( Function f, Args... args)
-> decltype(f(args...))
{

return f(args...);
}

int foo(int x, const char* y = "Hello") {
cout << x << " : " << y << endl;

return x;
};

int _tmain(int argc, TCHAR* argv[]) {

auto v = invoke(&foo, 10, "Hello There");
cout << v << endl;

return 0;
}

感谢任何帮助。

最佳答案

以防万一有人需要它。以下解决方法对我有用。

template <typename F> struct freturn_type;
template <typename R, typename... A>
struct freturn_type<R (*)(A...)>
{
typedef R type;
};


template <typename Function, typename ...Args>
typename freturn_type<Function>::type invoke ( Function f, Args... args)
//-> decltype(f(args...))
{
return f(args...);
};

关于c++ - 我在接受解压的可变参数模板参数的函数上使用延迟返回类型时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19991496/

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