gpt4 book ai didi

c++ - 模板类的类型独立对象

转载 作者:行者123 更新时间:2023-11-28 07:22:02 25 4
gpt4 key购买 nike

我又卡住了...

我有这个模板类:

template <typename a,typename b,typename c>
class myclass
{...};

我想声明一个这个类的对象:

myclass<a,b,c> x;

这显然是行不通的,我似乎无法弄清楚如何声明这个对象,或者它是否可能。

我可以像这样制作一个对象:

myclass<int,double,int> x;

但是我不想指定a,b,c的类型。

最佳答案

在不拼写参数的情况下创建复杂模板实例的典型方法是使用类型推导函数模板:

template <typename A, typename B, typename C>
myclass<A, B, C> make_myclass(A a, B b, C C)
{
return myclass<A, B, C>(); // or whatever
}

用法:

auto x = make_myclass(1, 'x', -2.5f);   // x is a myclass<int, char, float>

标准库中使用此习语的典型示例是 make_sharedmake_uniquemake_pairmake_tuplemake_exception_ptrmake_optional

关于c++ - 模板类的类型独立对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19306288/

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