Здравствуйте, CRT, Вы писали:
CRT>И чем это лучше чем
CRT>CRT>void dispatch(Actions action) {
CRT> switch (action) {
CRT> case Actions::A: doActionA(); return;
CRT> case Actions::B: doActionB(); return;
CRT> }
CRT>}
CRT>
???
CRT>По-моему doActionA(); return; лучше чем return doActionA(); в плане ясности кода
В данном примере, конечно ни чем. Но пример-то синтетический. А ты попробуй, например, реализовать аналог
std::apply: тебе дают какую-то вызываемую сущность (функцию, лямбду или функциональный объект пользовательского класса) и список фактических параметров, запакованных в std::tuple. Тебе нужно распаковать кортеж и передать аргументы в фунционал. И вернуть нужно то, что вернул функционал — возможно ссылку, возможно значение, а возможно ничего (void).