![](/img/trans.png)
[英]Where does the rule in the standard specify that a function with a trailing-return-type whose return type contains a placeholder type should be `auto`
[英]C++ auto function return type implementation [trailing-return-type]
是否有宏(如BOOST_AUTO)可以模擬C ++中函數的自動返回類型推導?
我的意思是類似尾隨返回類型的內容, 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
實例化delete和insert_range會創建非常瘋狂的模板。 所以我想知道是否可以用函數替換宏AS_VECTOR,而不必聲明返回類型。
完整的源代碼在這里: 簡潔表達數學公式的語法建議
基本上,在上面的代碼段中,以及在上面鏈接中的operator定義中,我都希望從函數/ operator主體中推斷返回類型(因為它僅是單行)。 我嘗試使用BOOST_TYPEOF,但是一般而言,我無法控制如何實例化參數,因此無法正常工作。
例如,上面的兩個宏代碼段實際上是replace_at
。 嘗試使其成為獨立函數會導致返回參數,其深度類似於6-7個模板。 可行,但非常混亂。
如果這不是可以實現的,那沒什么大不了的。 現在我可以使用宏,因此,如果沒有其他問題,我將繼續使用它們。
謝謝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.