C ++: É melhor passar uma enumeração como um valor ou como uma referência cons

Há duas perguntas relacionadas aqui:

A) Como o enum é implementado? Por exemplo, se eu tiver o código:

enum myType
{ 
   TYPE_1,
   TYPE_2
};

O que realmente está acontecendo? Sei que você pode tratar TYPE_1 e TYPE_2 como ints, mas na verdade são apenas ints?

B) Com base nessas informações, supondo que a enum passada não precise ser alterada, faria mais sentido passar o myType para uma função como um valor ou como uma referência cons

Por exemplo, qual é a melhor escolha:

void myFunction(myType x){ // some stuff }

o

void myFunction(const myType& x) { // some stuff }

questionAnswers(5)

yourAnswerToTheQuestion