嵌套模板问题

Nested templates issue

我有一个嵌套模板 class 声明如下:

template<typename T>
class IDMap
{
private:
    struct Item {
        uint16_t mVersion;
        T mItem;

        template <typename... Arguments>
        Item(uint16_t version, Arguments&&... args);
    };

    // ....
}

稍后我想定义item的构造函数,这是我的尝试:

template <typename T, typename... Arguments>
IDMap<T>::Item::Item(uint16_t version, Arguments&&... args) : mVersion(version), mItem(std::forward<Arguments>(args)...)
{
}

虽然上面没有编译,它只是说 'IDMap<T>::Item::{ctor}' : unable to match function definition to an existing declaration。缺少某些东西 - 正确的语法是什么?

正确的语法是:

template <typename T>
template <typename... Arguments>
IDMap<T>::Item::Item(uint16_t version, Arguments&&... args) : mVersion(version), mItem(std::forward<Arguments>(args)...)
{
}

DEMO