從元組或可變參數範本參數建立數組初始化器
處理需要嵌入到程式碼中的持久記憶體佈局時,需要靜態地表示佈局的描述。這涉及將特定 ID 綁定到佈局,在編譯時計算偏移量,以及創建一個可以在運行時迭代的數組初始值設定項,而不受 std::get(std::tuple) 的限制。
可變參數模板方法
要啟用編譯時累積和序列創建,請考慮使用可變參數模板。每個條目可以由標識符以及特定元素的大小或類型組成。頂級條目包被定義為「佈局」模板,每個條目都由一個「條目」模板表示。
範例用法
<code class="cpp">template<std::size_t offset, typename Key, typename... Entries> struct LayoutHelper { typedef std::tuple<> type; }; template<typename Key, typename... Entries> struct Layout:LayoutHelper<0, Key, Entries...>;</code>
<code class="cpp">template<typename Key, Key identifier, typename Data> struct Entry {};</code>
要使用此方法:
<code class="cpp">Layout< FooEnum, Entry< FooEnum, eFoo, char[10]>, Entry< FooEnum, eFoo2, double> > layout;</code>
實作前置元範本以將元素新增至元元件組前面後,Layout
其他注意事項
以上是如何在 C 中從元組或可變參數模板建立靜態數組初始值設定項?的詳細內容。更多資訊請關注PHP中文網其他相關文章!