C++;自动函数返回类型实现[尾随返回类型] 是否有宏,比如BooStYAuto,它允许模拟C++中的函数的自动返回类型演绎?

C++;自动函数返回类型实现[尾随返回类型] 是否有宏,比如BooStYAuto,它允许模拟C++中的函数的自动返回类型演绎?,c++,boost,C++,Boost,我的意思是类似于尾随返回类型 这就是我所拥有的: 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)), ve

我的意思是类似于尾随返回类型

这就是我所拥有的:

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
使用名称空间boost::fusion;
#定义为_向量(var,expr)BOOST_AUTO(var,AS_向量(expr))
AS_向量(b,erase(参数),advanced_向量(begin(参数)));
作为向量(a,插入范围(b,前进c(开始(b)),向量(i));
而(i
擦除和插入范围的实例化创建了非常疯狂的模板。 所以我想知道是否可以用函数替换宏作为_向量,但不必声明返回类型

完整的源代码如下:

基本上,在上面的代码片段中,以及在上面链接中的操作符定义中,我希望从函数/操作符体推断返回类型(因为它只是一行)。我尝试使用BOOST_TYPEOF,但通常情况下,我无法控制参数的实例化方式,因此无法正常工作

例如,上面的两个宏片段实际上是
replace\u at
。尝试将其变成一个独立的函数将导致返回参数,返回参数的深度类似于6-7个模板。 可行,但非常混乱

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


谢谢

图书馆的效果如何


你是说C++03的类似C++0x尾部返回类型+
decltype
-的解决方案吗?@James是的,类似这样的。对不起,我不太懂C++0x约定yet@aaa:没问题;我只是想帮你弄清楚你在找什么。:-)如果你举一个更具体的例子,会更容易得到帮助。例如,Boost有
Boost\u TYPEOF
。@aaa:如果你不介意的话,你能再扩展一点吗?什么是向量?可能是您想要的函数的一些伪代码。:)谢谢我已经尝试过了,不幸的是,只有在我事先知道仅从参数实例化表达式的情况下,这才有效,而我的情况并非如此