如何迭代打包的可變參數模板參數列表
迭代打包的可變參數模板參數列表需要解決兩個挑戰:從列表中提取數據並確定數量
提取資料
一種方法涉及將資料包裝為自訂類型,將其擴展為向量,然後對其進行迭代。然而,這種方法需要複雜的函數呼叫並限制參數類型。
計數參數
傳統方法(如遞歸或循環)在巨集產生的函數中不可行。相反,可以使用 lambda 函數。
Lambda 函數解決方案
使用折疊表達式(C 17),我們可以使用lambda 函數迭代參數:
<code class="cpp">template <class ... Ts> void Foo(Ts &&... inputs) { int i = 0; ([&] { ++i; std::cout << "input " << i << " = " << inputs << std::endl; }(), ...); }</code>
處理返回和中斷
對於複雜的循環,可以使用:以上是如何有效地迭代打包的可變參數模板參數列表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!