Wie kann man eine using
-Anweisung in eine Konstruktorinitialisierungsliste aufnehmen?Kann eine using-Anweisung in einer Konstruktorinitialisierungsliste angezeigt werden?
Zum Beispiel, anstatt
foo::foo(int a, int b, int c) : a(a), b(b), c(something_long::tada(c)) {}
Ich möchte
// Invoking some 'using something_long::tada;' magic
foo::foo(int a, int b, int c) : a(a), b(b), c(tada(c)) {}
haben Vermutlich sieht dies so etwas wie das doof try/catch-Syntax in diesem Code Region erforderlich. Funktionell erlaubt das Verwenden von Anweisungen das Gefühl, dass something_long::tada(c)
und using something_long::tada; tada(c)
unterschiedliche Verhaltensweisen pro Koenig-Lookup haben können.
Vielleicht wrap 'something_long :: tada (c)' in einer neuen Funktion? wie statische private Funktion. – billz
Clever, aber ich bin mir nicht sicher, ob der zusätzliche Aufwand, eine separate Header-Datei zu erstellen, wirklich einen Namespace ausgibt. – Yuushi
@ Yuushi- Dies ist nur ein Beweis des Konzepts, das zeigt, dass es prinzipiell möglich ist, dies zu tun. Obwohl ich völlig zustimme! – templatetypedef