我正在使用C實現的變體類型的C++ 11包裝器。變體類型支持像int,float,string這樣的常見數據類型,但也支持元組。我有轉換器的形式的基本類型...將變量數組轉換爲std :: tuple
template<typename T>
T convert_to(const Variant &var);
...但我努力轉換爲std ::元組。
底層的C API可以通過返回一個變量數組來分離出一個元組。它看起來是這樣的:
int get_tuple(Variant var, Variant **argv, int *argc);
現在我意識到我可以手動元組的每個大小創建模板,但我要尋找一個可變參數的解決方案,可以處理的元組的任何尺寸。有關如何解決這個問題的任何提示?
順便說一句,我想要包裝的是Erlang NIF API。
這個元組的概念是否容易映射到'std :: tuple'?看起來它的運行時可用,而不是編譯時。如果可能的數量的arities如果已知並且很小,你可以鍵入 - 擦除你的出路,但是該類型的最終接口看起來不像'std :: tuple'。 – 2012-02-29 19:01:45
我打算拋出一個異常如果Variant元組arity不符合std ::元組元組arity。 – goertzenator 2012-02-29 20:24:50