[英]Storing different std::tuple types in an array, vector or?
最新的C ++版本(我猜是17還是20)是否可以在std :: array或std :: vector或其他內置數據類型中存儲不同類型的元組? 例如,也許->
struct bunchOfTuples {
std::tuple<float, float, int, int> firstTup = std::make_tuple(float, float, int, int);
std::tuple<float, float, int> secondTup = std::make_tuple(float, float, int); };
// bunch more tuples of differing types
};
有什么方法可以使用模板來實現類似的目的? 還是類或結構實現? 還是我沒想到我是最新C ++的新手? 我正在研究一個自動方法調用項目。 我有一些基本可行的方法,但這會使它更清潔。
數組,向量以及實際上所有標准容器都是同質的。 這意味着容器的所有元素都具有相同的類型。 std::tuple
模板的不同實例是不同的類。 因此,它們不能存儲在一個陣列中。
C ++確實具有異構包裝器: std::variant
和std::any
。 Variant是帶標簽的聯合的實現。 它可用於存儲預定義類型列表中的對象。 any
是void*
的類型安全包裝器。 它可以存儲任何類型的對象。 因此,一個變體或any
容器可能對您有用。
不過,它們只是底層工具,對於更具特色的異構處理,現有的庫如Boost.Hana。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.