sagen, dass ich in Namespace A. eine Template-Funktion habe ich Es gibt eine Template-Funktion im Namensraum A erklärt auch einen anderen Namespace B. haben, die alsTypedef mit Template-Funktionen
template<typename T, typename U>
void f(T a, U b);
nun im Namensraum B definiert ist, Ich möchte einen speziellen Typ der Template-Funktion deklarieren. Ich dachte, wenn ich die Template-Funktion typedef
könnte, so dass es im Namensraum B als
void f(int a, double b);
, ohne tatsächlich die Umsetzung der Funktion Aufruf der Template-Funktion deklariert wird. Da es eine Möglichkeit gibt, neue Typnamen mit bestimmten Template-Parametern zu deklarieren, sollte es nicht auch möglich sein, dies mit Funktionen zu tun? Ich habe verschiedene Methoden versucht, um es zu erreichen, aber es hat nicht ganz geklappt.
Gibt es also schon einen Weg in C++, die Funktion mit gegebenen Template-Parametern neu zu deklarieren, ohne tatsächlich eine neue Funktion zu implementieren? Wenn nicht, ist es irgendwie in C++ 11 erreichbar?
Es wäre ein nettes Feature zu haben, da es den Zweck der Funktion klarer und wäre syntaktisch besser :)
bearbeiten machen würde: So könnte man schreiben:
using A::f<int, double>;
in B Namespace und die Funktion mit jener Vorlage auftauchen würde Parameter
Nach einem Blick, tut diese Hilfe? http://www2.research.att.com/~bs/C++0xFAQ.html#template-alias – chris
Nicht ganz sicher, ob es das tut, da es scheint, dass die aktuelle Version von Visual C++ keine Syntax unterstützt (?). Zumindest für mich hat es gerade viele Syntaxfehler ausgegeben – weggo
Der Compiler muss das Feature auch unterstützen. Ich glaube nicht, dass GCC es schon tut. – chris