在阅读DDS类型的 动态类型时候,发现有个dds::core::xtypes::DynamicType
这种类型可以自动根据字符串 决定数据的是那个类的。
突然想到了 C 语言的宏替换,宏替换是可以生产原始类型替换
替换之后 编译器在根据实际的类去编译。
这样的用处就是根据字符串动态的生产可以编译的代码。
#define class(x)class
注意不可以在宏参数中间添加空格
这种宏替换可以解决在不知道类型是啥的时候,动态生产出可以执行的代码
class MyTest{
public:
MyTest();
~MyTest();
public:
int GetValue();
};
#define Test(x) x
Test(MyTest) tt;
std::cout <<tt.GetValue()<<std::endl;
但是拿到的是字符串 怎么把字符串变成实际的类型呢
要解决这个问题 只能是使用模板技术 抽象出个个的实际类型 ,动态赋值了