模板元組:在每個元素上呼叫函數
在包含不同類型向量的模板元組中,經常需要執行特定的操作
問題:
如何在模板元組中的每個元素上調用函數,從而能夠執行諸如“對於每個(N): do_something_to_vec()"?
答案:
結合使用C 元程式設計技術和函數範本提供了一個優雅的解決方案。
函數模板:利用這些函數模板:
在提供的TupleOfVectors 範本的上下文中, do_something_to_each_each_c 方法可以實現
<code class="cpp">template<typename... Ts> struct TupleOfVectors { std::tuple<std::vector<Ts>...> t; void do_something_to_each_vec() { for_each_in_tuple(t, tuple_vector_functor()); } struct tuple_vector_functor { template<typename T> void operator () (T const &v) { // Perform desired operations on the argument vector... } }; };</code>
<code class="cpp">std::apply([](auto ...x){std::make_tuple(some_function(x)...);} , the_tuple);</code>
以上是如何將函數應用於向量模板元組中的每個元素,從而有效地執行「對於每個(N):do_something_to_vec()」之類的任務?的詳細內容。更多資訊請關注PHP中文網其他相關文章!