Ein einfacher C ++ 03-Aufzählungstyp ist nur ein ganzzahliger Wert mit einem fantastischen Namen, daher würde ich erwarten, ihn nach Wert zu übergeben ....
Aus diesem Grund würde ich auch boost::call_traits<T>::param_type
mit T=SomeEnum
erwarten, um zu bestimmen, dass der effizienteste Weg, T
zu übergeben, der Wert ist.
Weitere Informationen zur Boost-Dokumentation finden Sie unter Anrufmerkmale :
Definiert einen Typ, der den "besten" Weg darstellt, einen Parameter vom Typ T an eine Funktion zu übergeben.
Wenn ich boost::call_traits<T>::param_type
mit T=SomeEnum
verwende, wird bestimmt, dass SomeEnum als Referenz übergeben werden soll.
Ich würde auch erwarten, dass C++11 class enums
auch als Wert übergeben wird.
Testcode:
%Vor%