return-type-deduction

    0熱度

    2回答

    我想推導函數的返回類型並將其用作成員函數的返回類型。爲此,我使用decltype表達式。但我所有的嘗試都失敗了編譯,如果給定函數需要一個引用作爲參數: 我不能用我的類中的任何成員變量在decltype表達,因爲編譯器會抱怨,有沒有這樣的成員(見func1以下) 我不能使用臨時的函數參數,因爲該功能需要一個參考,你不能一個非const左值參考綁定到一個臨時的(見下文func2) 我也嘗試過各種鑄造運

    24熱度

    1回答

    感謝decltype作爲返回類型,C++ 11使得它非常容易引入裝飾器。例如,考慮這個類: struct base { void fun(unsigned) {} }; 我想與額外的功能來裝飾它,因爲我會做多次與不同類型的裝飾品,我先介紹一個decorator類,簡單地轉發一切base。在真實代碼中,這是通過std::shared_ptr完成的,以便我可以刪除裝飾並恢復「裸」對象