」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何存取可變參數模板類別中函數指標的參數類型?

如何存取可變參數模板類別中函數指標的參數類型?

發佈於2024-11-21
瀏覽:121

How can I access the argument types of a function pointer within a variadic template class?

存取可變參數範本類別中的函數指標參數類型

此問題源自於先前關於為具有任意參數的函數建立通用函子的查詢清單。給定的函子類別 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