2 Stimmen

Ist es möglich, den Rückgabetyp durch Tag-Dispatching zu bestimmen?

Tag-Versand wird erwähnt in Übergebenen Typ aus Vorlage wechseln .

Ist es möglich (und wenn ja, wie), etwas zu tun wie:

struct Tag1 {};
struct Tag2 {};

template<class T, typename R>
R get();

template<>
double get<Tag1>() {return 1.3;}

template<>
char const *get<Tag2>() {return "hello";}

double aDouble = get<Tag1>();
char const *aString = get<Tag2>();

Der obige Code führt dazu, dass sich der Compiler über einen zweideutigen Aufruf einer überladenen Funktion beschwert, aber ich hoffe, dass die letzten beiden Zeilen die Absicht der Verwendung vermitteln.

Vielen Dank

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X