Non, ce n'est pas le cas, car le type du paramètre de modèle inclurait lui-même. Cela conduirait à une récursivité sans fin dans le type.
Si au lieu de la spécialisation de modèle de classe, vous acceptez une classe de base de celui-ci, qui est très possible
struct TemplateBase {
};
typedef long (*fpType)(TemplateBase&, HWND, long, long);
template<fpType FP>
struct BaseWindow : TemplateBase {
};
long sampleFunc(TemplateBase &b, HWND hwnd, long wparam, long lparam) {
...
}
int main() {
BaseWindow<sampleFunc> bw;
sampleFunc(bw, ...);
}
Que voulez-vous faire avec ça?
Typo? Qu'est-ce que fp_t? – eduffy
s'il vous plaît coller la ligne où le compilateur signale l'erreur. – Sahas
woops. Le pointeur s'appelait fp_t mais il n'apparaissait pas dans l'aperçu du post en le tapant, donc je l'ai changé en fp, mais j'ai oublié de modifier le message d'erreur. – Rao