存取可變參數範本類別中的函數指標參數類型
此問題源自於先前關於為具有任意參數的函數建立通用函子的查詢清單。給定的函子類別 Foo 允許使用任意數量的參數呼叫函數指標。然而,現在的任務是從 Foo 建構函數內的函數指標中提取參數類型。
在定義 Foo 類別時,參數類型在建構函式的函式指標宣告中被封裝為 ARGS...。雖然參數的值在建構時不可用,但它們的類型可以在函數指標本身內存取。
要發現這些參數類型,可以利用 function_traits 類別:
template
struct function_traits;
template>
{
// Number of arguments
static const size_t nargs = sizeof...(Args);
// Return type
typedef R result_type;
// Argument types at specified index
template <size_t i>
struct arg
{
typedef typename std::tuple_element<i, std::tuple<Args...>>::type type;
};
};
在 Foo 建構子中,可以使用 function_traits 存取這些參數類型,如下所示:
template透過使用 function_traits,可以在 Foo 類別中提取和利用參數類型,從而實現基於函數簽名的複雜操作。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3