首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C++自动函数返回类型实现[拖尾返回类型]

C++自动函数返回类型实现[拖尾返回类型]
EN

Stack Overflow用户
提问于 2010-05-30 09:15:18
回答 1查看 1.3K关注 0票数 0

有没有像BOOST_AUTO这样的宏,允许在C++中模拟函数的自动返回类型推导?

我的意思是像拖尾返回型的东西,http://en.wikipedia.org/wiki/C%2B%2B0x#Alternative_function_syntax

这就是我所拥有的:

代码语言:javascript
运行
复制
using namespace boost::fusion;
#define AS_VECTOR(var, expr) BOOST_AUTO(var, as_vector(expr))

AS_VECTOR(b, erase(arguments, advance_c<N>(begin(arguments))));
AS_VECTOR(a, insert_range(b, advance_c<N>(begin(b)), vector_tie(i)));

while (i < upper()(a)) 
{
    //apply<T>(*this, f, a);
    ++i;
}
#undef AS_VECTOR

erase和insert_range的实例化创建了非常疯狂的模板。所以我想知道有没有可能用AS_VECTOR代替宏函数,而不必声明返回类型。

完整的源代码在这里:Suggestions on syntax to express mathematical formula concisely

基本上,在上面的代码片段和上面链接中的运算符定义中,理想情况下,我希望从函数/运算符体推断返回类型(因为它只有单行)。我尝试使用BOOST_TYPEOF,但是一般来说,我不能控制如何实例化参数,所以不起作用。

例如,上面两个宏代码片段实际上是replace_at。试图让它成为一个独立的函数会导致返回参数,这就像6-7个模板一样深。可行,但非常混乱。

如果它不是可以实现的东西,那也没什么大不了的。现在,我只能使用宏,所以如果没有其他问题,我将继续使用它们。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2010-05-31 02:03:08

boost result_of库怎么样?

http://www.boost.org/doc/libs/1_43_0/libs/utility/utility.htm#result_of

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2937184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档