Почему переменная enum здесь является значением?

Пример: typedef enum Color { RED, GREEN, BLUE } Color; void func(unsigned int& num) { num++; } int main() { Color clr = RED; func(clr); return 0; } Я получаю следующую ошибку при компиляции: <source>: In function 'int main()': <source>:16:9: error: cannot bind non-const lvalue...