Хранить разные типы данных на карте - с информацией о типе

Мне нужно проанализировать и сохранить несколько (но не слишком) сложный поток и нужно как-то сохранить проанализированный результат. Поток по существу содержит пары имя-значение сvalues может быть разного типа для разныхnames. В основном я получаю картуkey (всегда строка) в пару.

Я начал с чего-то вроде этого:

typedef enum ValidType {STRING, INT, FLOAT, BINARY} ValidType;
map Data;

Однако я действительно не люблюvoid* и хранение указателей. Конечно, я всегда могу сохранить значение в виде двоичных данных (vector например), в этом случаеmap в конечном итоге

map Data;

Тем не менее, в этом случае мне придется анализировать двоичные данные каждый раз, когда мне нужно фактическое значение, которое будет довольно дорогим с точки зрения производительности.

Учитывая, что меня не слишком беспокоит объем памяти (объем данных невелик), но я обеспокоен производительностью, каким будет правильный способ хранения таких данных?

В идеале яЯ хотел бы избежать использования boost, поскольку это увеличило бы размер конечного приложения в 3 раза, если не больше, и мне нужно минимизировать это.

Ответы на вопрос(3)

Ваш ответ на вопрос