C ++ Funktion für Struktur unabhängig von Vorlagentypen

8

Ich habe eine Reihe von Funktionen, die auf Vorlagen basieren, aber nicht auf die Vorlagen basieren.

Das Templating der Funktion und die Ableitung der Typen würde funktionieren, würde aber dann zu mehreren Funktionen kompilieren.

%Vor%

Gibt es einen Weg, dies zu erreichen?

    
Matt 15.11.2016, 16:07
quelle

3 Antworten

12

Refaktorieren Sie die Felder, die nicht von T in einer anderen Klasse abhängen. Machen Sie MyStruct<T> davon erben:

%Vor%     
Vittorio Romeo 15.11.2016, 16:10
quelle
9

Sie können Vererbung verwenden:

%Vor%     
πάντα ῥεῖ 15.11.2016 16:10
quelle
1

Ich würde das tun:

%Vor%

Dies funktioniert unabhängig von der Beziehung zwischen Ihren Typen und wird nicht auf mehrere Funktionen kompiliert (siehe letzten Absatz). Es werden alle Typen mit einem Mitglied a erlaubt, das kleiner als vergleichbar ist.

  

Das Templating der Funktion und die Ableitung der Typen würde funktionieren, würde aber dann zu mehreren Funktionen kompilieren.

Schlechte Rate. Es ist sogar besser als das, es kompiliert zu überhaupt keine Funktion , da jeder vernünftige Compiler (sogar msvc) die Funktion vollständig inline macht.

    
Guillaume Racicot 15.11.2016 17:49
quelle

Tags und Links