Здесь есть два вопроса:
A) Как реализовано перечисление? Например, если у меня есть код:
enum myType
{
TYPE_1,
TYPE_2
};
Что на самом деле происходит? Я знаю, что вы можете рассматривать TYPE_1 и TYPE_2 как ints, но действительно ли они просто ints?
B). Исходя из этой информации, считая, что перечислимое перечисление не нужно изменять, было бы более целесообразно передать myType в функцию как значение или как ссылку на константу?
Например, лучший выбор:
void myFunction(myType x){ // some stuff }
или
void myFunction(const myType& x) { // some stuff }