gpt4 book ai didi

c++ - 类模板重载、类型名和类型名 vector

转载 作者:行者123 更新时间:2023-11-30 04:05:42 24 4
gpt4 key购买 nike

有没有办法用单个类型名和类型名 vector 重载我的类模板?

像单个类型名:

template <typename T, ... /*other typedefs same as in second one*/ >
class myClass
{
myClass(const T & input);
// ...
}

和类型名称 vector (可能包含一些语法错误):

template <vector<typename T>, ... >
class myClass<vector<T>, ... >
{
myClass(vector<T> & input);
// ...
}

类方法我猜是这样的:

template<typename T, ... >
myClass<T, ... >::myClass(const T & input) {/*do something*/}


template<vector<typename T>, ... >
myClass<vector<T>, ... >::myClass(vector<T> & input) {/*do something*/}

就这么简单

myClass <string> a; // Should go for first one
myClass <vector<string>> b; // Should go for second one

有什么方法可以使它在语法上正确吗?

最佳答案

这个怎么样?

template <typename T, typename...>
class myClass
{
myClass(const T& input) { /*...*/ }
// ...
};

template <typename T, typename... R>
class myClass<vector<T>, R...>
{
myClass(const vector<T>& input) { /*...*/ }
// ...
};

关于c++ - 类模板重载、类型名和类型名 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23162742/

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