gpt4 book ai didi

C++ 将参数包传递给类

转载 作者:行者123 更新时间:2023-12-01 18:59:39 25 4
gpt4 key购买 nike

我想要一个类,它可以获取相同类型的无限参数,并将它们存储到 vector 中。它应该看起来像这样:

class A(int a, int b, **N time parameter of type T**)
: data(**vector will get N times type T**)
{
}

protected:
vector<T> data;

我应该如何实现它?解决方案可能是 c++11/14我遇到了一些错误,例如“参数包未用‘…’扩展”等。

最佳答案

此代码示例可能有用:

#include <vector>
#include <utility>

template<typename T>
class MyClass {
public:
template<typename ...Args>
MyClass(int a, int b, Args&& ...args) :data{ std::forward<Args>(args)... } {}
private:
std::vector<T> data;
};

int main() {
MyClass<char> sample(1, 2, 'a', 'b');
return 0;
}

[编辑]:添加了 std::forward,添加了实用程序缺少的包含

关于C++ 将参数包传递给类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41847828/

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