В любом случае можно ли использовать переключатель, расширяющий все значения перечисления с помощью Visual Assist или Vanilla Visual Studio? Включенные фрагменты просто вставляют базовый переключатель с записью по умолчанию. Я использую последнее обновление Visual Studio 2013.
VS 2013 может создать оператор switch для перечисления, используя фрагмент по умолчанию. (Примечание: используйте фрагмент VS по умолчанию, а не фрагмент VA).
Когда вы набираете «swit», примите предложенный фрагмент кода от VS. Замените «switch_on» на ваш enum и нажмите Enter. Ваше заявление будет расширяться. (Вам нужно два ввода, если один выбрал ваше перечисление из списка.)
После того, как переключатель был сгенерирован, если вы добавите новые значения перечисления, вы можете использовать Добавить заявления о пропущенных делах команда в Visual Assist для заполнения оператора switch новыми значениями (shift+alt+q, m
).
В Visual Studio 2015 автоматическое завершение случаев переключения отменяется, если дискриминатор объявлен с const, как в этом примере:
auto const enu = static_cast<MediaType>(discriminant);
Удалите const, и вуаля — это снова работает!
(Тогда вы можете положить const обратно, если хотите.)