是否存在类似BOOST_AUTO的宏,它可以模拟C ++中函数的自动返回类型推导?
我的意思是trailing-return-type,http://en.wikipedia.org/wiki/C%2B%2B0x#Alternative_function_syntax
这就是我所拥有的:
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模板深。
可行,但非常混乱。
如果不是可以实施的东西,那没什么大不了的。现在我接受了宏,所以如果没有别的,我会继续使用它们。
谢谢
答案 0 :(得分:0)