Diab Compiler beschwert sich in Zeile @@@ dieser Typname ist nicht zulässig.C++ - Fehler in der Vorlage Funktionsaufruf: Typ Name ist nicht zulässig
template<
Task TASK,
Event EVENT>
class TManager :
public AbstractTManager,
public common::ITManager
{
public:
typedef os::EManager<TASK> tEManager;
TManager()
{ /* ... */}
virtual void init()
{
tEManager::registerCallback<
EVENT,
TManager, /* @@@ */
&TManager::func>(*this);
}
void func()
{ /* ... */}
}
In emanager register wird in folgender Weise definiert:
template<TType task>
class EManager
{
public:
template<
EType event,
typename e_listener,
void (e_listener::*TMethod)()
>
static void registerCallback(e_listener& listener)
{
/* ... */
}
}
Das zweite Template-Argument e_listener mit Stichwort Typname ist, damit ich weiß nicht, warum es Probleme berichtet. Habe ich etwas verpasst? Vielen Dank für Hilfe im Voraus.
Bitte geben Sie eine [mcve]. – Barry
Wahrscheinlich verwandt: http://stackoverflow.com/questions/610245/where-and-why-do-i-have-to-put-the-template-and-typeam-keywords. Der Fehler würde passen, wenn der Compiler "eMANager" als Wert behandelt, "<" als kleiner als und "EVENT" als den anderen Operanden, wobei TManager der zweite Operand eines Komma-Operators ist. – chris