As I can see, call_traits for enum types defines param_type as const reference.
I cannot find a reason for it.
It is possible to use is_enum to determine whether type is enum or not, and define param_type for enums similar to value_type.

Could anybody describe the situation?