C++ 模板方法,其中一个类型本身就是模板类 class-Foo{ 公众: 模板 void invokequeed(信号类型和信号,常量细节::标识和参数) { m_threadSyncQueue.invokeQueued(信号、标记、std::forward(args)…); } }

C++ 模板方法,其中一个类型本身就是模板类 class-Foo{ 公众: 模板 void invokequeed(信号类型和信号,常量细节::标识和参数) { m_threadSyncQueue.invokeQueued(信号、标记、std::forward(args)…); } },c++,templates,C++,Templates,这段代码在其包含的所有.cpp文件中生成大量错误,首先是 无法识别的模板声明/定义 在第一个调用参数中。如何使其工作?您应该使用模板参数 class Foo { public: template<typename SignalType, typename ...Arguments> void invokeQueued(SignalType<Arguments...>& signal, const detail::identity<Argumen

这段代码在其包含的所有.cpp文件中生成大量错误,首先是

无法识别的模板声明/定义


在第一个
调用
参数中。如何使其工作?

您应该使用模板参数

class Foo {
public:
   template<typename SignalType, typename ...Arguments>
    void invokeQueued(SignalType<Arguments...>& signal, const detail::identity<Arguments>&... args)
    {
        m_threadSyncQueue.invokeQueued(signal, tag, std::forward<Arguments>(args)...);
    }
}
模板

您应该使用模板参数

class Foo {
public:
   template<typename SignalType, typename ...Arguments>
    void invokeQueued(SignalType<Arguments...>& signal, const detail::identity<Arguments>&... args)
    {
        m_threadSyncQueue.invokeQueued(signal, tag, std::forward<Arguments>(args)...);
    }
}
模板

您应该使用模板参数

class Foo {
public:
   template<typename SignalType, typename ...Arguments>
    void invokeQueued(SignalType<Arguments...>& signal, const detail::identity<Arguments>&... args)
    {
        m_threadSyncQueue.invokeQueued(signal, tag, std::forward<Arguments>(args)...);
    }
}
模板

您应该使用模板参数

class Foo {
public:
   template<typename SignalType, typename ...Arguments>
    void invokeQueued(SignalType<Arguments...>& signal, const detail::identity<Arguments>&... args)
    {
        m_threadSyncQueue.invokeQueued(signal, tag, std::forward<Arguments>(args)...);
    }
}
模板

以前从未见过这种语法。谢谢。以前从未见过这种语法。谢谢。以前从未见过这种语法。谢谢。以前从未见过这种语法。非常感谢。