Warum ist boost :: call_traitsT :: param_type eine Referenz für aufgezählte Typen?

8

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%     
mark 16.11.2012, 10:45
quelle

1 Antwort

3

Dies wurde aktualisiert, um eine Überprüfung auf is_enum in der Implementierung einzuschließen. Sehen Sie diesen Fehlerbericht, der vor 2 Monaten geschlossen wurde: Ссылка

    
BoBTFish 16.11.2012, 14:31
quelle

Tags und Links