我正在尝试模仿 boost::any 对于我的玩具语言,遵循以下问题的公认答案,
我可以有,
Element e1 = 11;
Element e2 = 12.1;
现在我想重载 + 所以我可以拥有,
e3 = e1 + e2;
但是在运行时我不知道 e1 是否会保存一个 int 或一个 double 但它会是数字。那么我该如何修改 const 以便它还保存一个变量,告诉我 Element 持有什么样的数字,以便我可以调用正确的 Get 方法。
template /typename Datatype/
Element(Datatype InitialValue)
{
StoredValue = new ValueStorage(InitialValue);
}
我也在没有异常的微处理器上执行此操作,将 -fno-rtti 传递给编译器,并且不能使用 stdlib 或 boost。