Allgemein min und max - C ++

8

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?

deepmax 11.05.2013, 14:12
quelle

2 Antworten

13

std::common_type ( c++11 ):

  

Für nicht spezialisierte std::common_type gelten die Regeln für die Ermittlung der   gemeinsamer Typ zwischen jedem Paar T1 , T2 sind genau die Regeln für   Bestimmen des Rückgabetyps des ternären Bedingungsoperators where    T1 und T2 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.

    
BoBTFish 11.05.2013, 14:17
quelle
5

Nach der Antwort und den wertvollen Kommentaren habe ich es wie folgt gemacht:

%Vor%     
deepmax 11.05.2013 14:49
quelle

Tags und Links