Zweck der Klasse = void in C ++? [Duplikat]

8
    

Diese Frage hat hier schon eine Antwort:

    
  •              Wie funktioniert 'void_t'?                                      2 Antworten                          
  •     

Was ist der Zweck von class = void in den folgenden Code-Snippets?

%Vor%     
rsp 17.05.2017, 12:47
quelle

1 Antwort

10
%Vor%

Das ist Ihre Standard-Strukturvorlage, sie fragt nach zwei Vorlagenargumenten, aber die zweite ist standardmäßig auf void gesetzt, daher muss dieses Argument nicht explizit angegeben werden, etwa wie ein Standardfunktionsparameter.

Dann:

%Vor%

Ist eine Template-Spezialisierung für Ihre has_type_member -Struct, wird SFINAE diese Spezialisierung ausschließen, wenn T::type nicht existiert (und somit eine ungültige Syntax ist), falls sie existiert, wird sie diese Spezialisierung anders wählen.

Der zweite Parameter muss für die Template-Spezialisierung verwendet werden, aber wir verwenden ihn nicht in unserem "Fallback" struct , also setzen wir einfach auf void .

    
Sombrero Chicken 17.05.2017, 12:52
quelle

Tags und Links