#include <iostream>
using namespace std;

enum class Action {A, B};

template <Action a>
void applyAction()
{
   std::cout << "Action  " << (int)a << std::endl;
}

template <Action... as>
void applyActions() {
	using do_= int[];
	(void)do_{0, ( 
	   applyAction<as>()
	,0)...,0}; 
}

void foo() {
  applyActions<Action::A, Action::B>();
}

void bar() {
  applyActions<Action::B, Action::A>();
}



int main() {
	foo();
	bar();
	return 0;
}