在C++; 我在C++中有以下代码-< template <class T> class TempClass { T value; public: TempClass(T item) { value = item; } T getValue() { return value; } }; int main() { TempClass<string>* String = new TempClass<string>("Rin>Sakura"); cout << "Output Values: " << String->getValue() << "\n"; class TempClass<int>* integer = new TempClass<int>(9); cout << "Output Values: " << integer->getValue(); } 模板 类TempClass{ T值; 公众: 临时班(T项) { 价值=项目; } T getValue() { 返回值; } }; int main() { TempClass*字符串= 新天宝级(“Rin>樱花”); cout
您可以使用可变模板和在C++; 我在C++中有以下代码-< template <class T> class TempClass { T value; public: TempClass(T item) { value = item; } T getValue() { return value; } }; int main() { TempClass<string>* String = new TempClass<string>("Rin>Sakura"); cout << "Output Values: " << String->getValue() << "\n"; class TempClass<int>* integer = new TempClass<int>(9); cout << "Output Values: " << integer->getValue(); } 模板 类TempClass{ T值; 公众: 临时班(T项) { 价值=项目; } T getValue() { 返回值; } }; int main() { TempClass*字符串= 新天宝级(“Rin>樱花”); cout,c++,class,templates,C++,Class,Templates,您可以使用可变模板和std::tuple来保存不同类型的值。最简单的示例: template<class... Ts> class TempClass { using Tuple = std::tuple<Ts...>; Tuple values; public: TempClass(Ts... items) : values{items...} {} template<std::size_t index> st
std::tuple
来保存不同类型的值。最简单的示例:
template<class... Ts>
class TempClass {
using Tuple = std::tuple<Ts...>;
Tuple values;
public:
TempClass(Ts... items) : values{items...} {}
template<std::size_t index>
std::tuple_element_t<index, Tuple> getValue() const {
return std::get<index>(values);
}
};
int main() {
TempClass<int, std::string, double> tc1{0, "string", 20.19};
std::cout << tc1.getValue<2>(); // Output: 20.19
}
模板
临时班{
使用Tuple=std::Tuple;
元组值;
公众:
TempClass(Ts…items):值{items…}{}
模板
std::tuple\u元素\u t getValue()常量{
返回std::get(值);
}
};
int main(){
临时类tc1{0,“字符串”,20.19};
std::cout是的,你的答案似乎就是我想要的。但是我得到了一个错误:“std”命名空间中的“tuple\u element\t”在编译器上运行时没有命名模板类型错误。据我所知,这可能是编译器的问题。@RijulGanguly,试试typename std::tuple\u element::type
。
if (flag)
//initialize an instance of TempClass with one template
TempClass<string> s("haha");
else
//initialize an instance of TempClass with 2 templates.
TempClass<string, int> s("haha", 5);
template<class... Ts>
class TempClass {
using Tuple = std::tuple<Ts...>;
Tuple values;
public:
TempClass(Ts... items) : values{items...} {}
template<std::size_t index>
std::tuple_element_t<index, Tuple> getValue() const {
return std::get<index>(values);
}
};
int main() {
TempClass<int, std::string, double> tc1{0, "string", 20.19};
std::cout << tc1.getValue<2>(); // Output: 20.19
}