Кто-нибудь знает, было ли boost :: get
для boost :: variant
является операцией, требующей больших затрат производительности, или нет.
Прямо сейчас я реорганизую некоторый старый код в критичной для производительности части , где «изменение» реализовывалось контейнерами для всех возможных типов и соответствующего перечисления
.
Очевидно, это быстро, но некрасиво и прямо сейчас, когда мне нужно реорганизовать код, чтобы он работал с еще одним типом , я хочу избавиться от этой старой части кода и заменить это с boost :: variant
.
Кроме того, я не могу просто «профилировать оба варианта и сравнить», потому что этот рефакторинг - заноза в заднице и потребует довольно много времени.
Итак, если кто-то знает, как boost :: get
выполняет сравнение с общей диспетчеризацией типов на основе перечисления
, я был бы признателен, если вы поделитесь этими знаниями.
Существует еще один вариант использования boost :: variant
с пользовательским посетителем (как описано в документации boost :: variant
) - это может быть быстрее, чем boost :: get
в моем случае?
Спасибо.