Syntax für Typedef auf Template-Function-Pointer



  • Hallo, ich möchte ein Typedef auf eine Funktion, deren Rückgabewert und Argument Template Variablen sind:

    typedef template<typename T> T (*calculate_function)(const T&);
    

    Allerdings bekomme ich einen Fehler bom kompilieren:

    error: expected unqualified-id before "template"
    

    Kann man gar keine Pointer zu Template Funktionen erstellen?



  • MemberFuncTor schrieb:

    Kann man gar keine Pointer zu Template Funktionen erstellen?

    Exakt. Für T wird später ein konkreter Typ eingesetzt, je nach Typ entsteht eine andere Funktion, also ein anderer Zeiger.

    Du kannst allerdings sowas machen:

    template <typename T>
    struct calculate_function
    {
       typedef T (*type)(const T&);
    };
    
    int foo(const int&);
    calculate_function<int>::type ptr_fn = &foo;
    

  • Mod

    typedefs auf templates gehen nicht in C++. Hier findest du eine Erklärung der üblichen alternativen Vorgehensweise:

    http://www.gotw.ca/gotw/079.htm

    edit: Oh, zu spät. Nexus hat schon alles gesagt, während ich den Link gesucht habe.


Anmelden zum Antworten