簡體   English   中英

C ++自動函數返回類型的實現[trailing-return-type]

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM