可變參數模板和省略號(“...”)標記
在C 11 中,可變參數模板允許靈活數量的模板參數。定義可變參數範本時,省略號 (...) 標記起著至關重要的作用。
解包與打包
省略號的位置決定其功能:
解包範例
考慮以下可變參數範本函數:
<code class="cpp">template< class T, class... Args > unique_ptr<T> make_unique( Args&&... args ) { return unique_ptr<T>(new T(std::forward<Args>(args)...)); }</code>
使用多個參數呼叫make_unique 時,省略號(在std::forward(Args>(args)... 中)允許函數接受可變數量的參數。省略號解壓縮Args 參數包,從而產生以下擴展表達式:
<code class="cpp">std::forward<Arg0>(arg0), std::forward<Arg1>(arg1), ...</code>
模板和函數參數中的省略號位置
在模板參數列表中,省略號放置在中間,表示參數pack 在函數參數列表中繼續。有額外的模板參數(例如非可變參數)。打包到單一實體。參數初始化器建立陣列
定義從多個基底類別繼承的類別(透過公用Mixins... 語法)
以上是省略號 (...) 標記在 C 11 可變參數範本中如何運作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!