我有DefineEvent
類模板,我用它來簡化新事件類的定義。它看起來是這樣的(漂亮毛茸茸的,我知道):如何在函數調用中解壓縮模板參數?
template<class EventClass, class... Parents>
class DefineEvent : public virtual Event, public Parents...
{
public:
DefineEvent()
{
static const EventTypeInfo& info = TypeInfoParentSetter<EventClass>
::SetOnce<Parents...>(TypeInfoHolder<EventClass>::Instance());
}
};
我使用的TypeInfoParentSetter
類有如下:
template<class EventClass>
class TypeInfoParentSetter
{
public:
template<class... Parents>
static const EventTypeInfo& SetOnce(TypeInfoHolder<EventClass>& holder)
{
// ...
}
};
我得到一個編譯錯誤指向::SetOnce<Parents...>
線DefineEvent()
,告訴我認爲編譯器「預期的主要表達式之前......」令牌「。我該如何解決?
您可以在上下文here中查看代碼,但請注意它非常難看。