2016-06-29 5 views
1

Aus dieser link(1056 Template-Aliase, Mitglied Definitionen und die aktuellen Instanziierung) erstellen Ich erkennen, dass, Wir Alias ​​in Vorlagen erstellen können, zum Beispiel wir, wie untenWie Alias ​​Template-Methode

tun könnten
template<typename T> 
using Vec = std::vector<int> 

Wie kann ich Alias ​​für eine Template-Methode habe ich versucht, unten, aber es wirft Kompilierungsfehler error: missing template arguments before '.' token

#include <iostream> 
using namespace std; 

template <class T> struct A 
{ 
    float g(T x){return(x*0.01);} 
}; 

template <class T> using B = A<T>; 

int main() 
{ 
    B.g<int>(10); 
    // your code goes here 
    return 0; 
} 

ich bin nicht sicher, wie Alias ​​für Template-Methode erstellen, bitte som Wir haben Licht darauf geworfen.

Antwort

4

Sie haben wenig misorder in Ihrer Linie, die richtige sein sollte:

B<int>().g(10); 

dh. Sie erstellen ein Objekt und rufen die Funktion g davon auf.

Durch den Code mit Klirren Kompilieren es gibt sehr genaue Fehlermeldungen:

tmpl.cpp:13:5: error: use of class template 'B' requires template arguments 
    B.g<int>(10); 
    ^
tmpl.cpp:9:20: note: template is declared here 
template <class T> using B = A<T>; 
~~~~~~~~~~~~~~~~~~^
tmpl.cpp:13:6: error: cannot use dot operator on a type 
    B.g<int>(10); 
    ^
+0

, das funktioniert. Vielen Dank. – Panch

+0

Sie sind herzlich willkommen :) – fritzone