【发布时间】:2016-08-17 19:25:51
【问题描述】:
我必须向调用者返回一个 int 和一个函数对象,我想返回一个像 make_tuple(int,[](some){}) 这样的元组我现在在不支持 decltpe(auto) 作为返回类型的 GCC 上,有什么办法吗我现在可以将我的返回类型设为std::tuple<int,auto> myfun() 我一直在做如下(但不确定)
auto myfun()->decltype(make_tuple(100,p))
{
auto p=[](some){};
return make_tuple(100,p);
}
我在做什么好吗?
【问题讨论】:
-
这可以编译吗?不应该。
-
这里为什么需要
decltype(auto)?如果你的编译器支持函数的返回类型推导,那么去掉上面示例中的尾随返回类型应该可以工作。 -
所以在这里提出问题比创建一个简单的测试用例并尝试编译它更快?
-
@FallingFromBed 你总是可以创建一个minimal reproducible example 并编译它来测试。那会告诉你它不会编译。
-
@FallingFromBed 你有什么CPU?在我的电脑上编译这个需要几分之一秒。几乎无法忍受。