C ++ - boost get question

Кто-нибудь знает, было ли boost :: get для boost :: variant является операцией, требующей больших затрат производительности, или нет.

Прямо сейчас я реорганизую некоторый старый код в критичной для производительности части , где «изменение» реализовывалось контейнерами для всех возможных типов и соответствующего перечисления .

Очевидно, это быстро, но некрасиво и прямо сейчас, когда мне нужно реорганизовать код, чтобы он работал с еще одним типом , я хочу избавиться от этой старой части кода и заменить это с boost :: variant .

Кроме того, я не могу просто «профилировать оба варианта и сравнить», потому что этот рефакторинг - заноза в заднице и потребует довольно много времени.

Итак, если кто-то знает, как boost :: get выполняет сравнение с общей диспетчеризацией типов на основе перечисления , я был бы признателен, если вы поделитесь этими знаниями.

Существует еще один вариант использования boost :: variant с пользовательским посетителем (как описано в документации boost :: variant ) - это может быть быстрее, чем boost :: get в моем случае?

Спасибо.

7
задан Yippie-Ki-Yay 22 October 2010 в 13:13
поделиться