我正在使用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