gpt4 book ai didi

c++ - 使用任何参数集实例化类模板内的 typename 对象

转载 作者:行者123 更新时间:2023-12-02 18:34:40 25 4
gpt4 key购买 nike

考虑下一个例子:

template<typename T>
class A
{
public:
A(int p1, int p2, //any arguments needed for T constructor);
private:
std::vector<T> vec;
};

template<typename T>
A<T>::A(int p1, int p2, //any arguments needed for T constructor)
{
for(size_t i = 0; i < 10; ++i)
{
vec.push_back(T(//any arguments needed for T constructor))
{
}

我可以创建接受带有任何构造函数签名的类型的类模板吗?

最佳答案

是的。

你也不需要循环

template<typename T>
class A
{
public:
template<typename... Args>
A(Args&&... args) : vec(10, T(std::forward<Args>(args)...)) {}
private:
std::vector<T> vec;
};

关于c++ - 使用任何参数集实例化类模板内的 typename 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68950748/

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