gpt4 book ai didi

c++ - 嵌套模板问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:52:49 24 4
gpt4 key购买 nike

我有一个这样声明的嵌套模板类:

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

关于c++ - 嵌套模板问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28896802/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com