Я пытаюсь эмулировать boost :: any для моего игрушечного языка, следуя принятому ответу на следующий вопрос,
Доступ к значениям в классе, аналогичном boost :: any
Я могу иметь,
Element e1 = 11;
Element e2 = 12.1;
Теперь я хотел бы перегрузить +, чтобы я мог,
e3 = e1 + e2;
но во время выполнения я не буду знать, будет ли e1 содержать целое или двойное число, но это будет число.
Итак, как я могу изменить const, чтобы он также сохранял переменную, сообщающую мне, какой тип элемента удерживать, чтобы я мог вызвать правильный метод Get.
template /typename Datatype/
Element(Datatype InitialValue)
{
StoredValue = new ValueStorage(InitialValue);
}
Я также делаю это на микропроцессоре, который не имеет исключений, передает -fno-rtti компилятору и не может использовать stdlib или boost.