Eine allgemeine Minimalfunktion schreiben, Zwei Fragen kamen mir in den Sinn. Der Code funktioniert mit jedem Eingabetyp und jeder Argumentnummer:
%Vor%
Gibt es einen besseren Ersatz für decltype(a+b)
? Ich weiß, dass es eine Standardklasse gibt, an die ich mich nicht erinnern kann, etwas wie decltype(std::THE_RESULT<a,b>::type)
.
Der zurückgegebene Typ dieses decltype(std::THE_RESULT<a,b>::type)
ist const &
oder nicht?
std::common_type
( c++11
):
Für nicht spezialisierte
std::common_type
gelten die Regeln für die Ermittlung der gemeinsamer Typ zwischen jedem PaarT1
,T2
sind genau die Regeln für Bestimmen des Rückgabetyps des ternären Bedingungsoperators whereT1
undT2
sind die Typen des zweiten und des dritten Operanden.
und
Bei arithmetischen Typen kann der allgemeine Typ auch als Typ angesehen werden des (möglicherweise gemischten) arithmetischen Ausdrucks wie
T0() + T1() + ... + Tn().
Nicht sicher über const&
, aber Sie könnten mit std::remove_cv
und std::remove_reference
(und std::is_reference
, um die Antwort herauszufinden.
Tatsächlich hier finden Sie eine Liste der Hilfsprogramme für den Typ. Mach dich selbst fertig.