如何在C ++中处理泛型对象

时间:2015-02-05 07:48:03

标签: c++ json generics c++11

在C ++ 11中处理泛型值的正确方法是什么,或者可以使用(void *)吗?

基本上,我正在解析json,节点值可以是String,Integer,Double,Date等。

在C中,只使用void *就可以了(不安全,但还可以),在C#中我们使用Object。但是C ++ 11中这样做的正确方法是什么?我是否必须构建一个包装类,或者是否有更简单的方法?

1 个答案:

答案 0 :(得分:5)

您可以为各种类型创建基类,或使用"区别联盟"诸如Boost.Variant之类的类,它包含一组已知的类型,并记住它所持有的类型。