gpt4 book ai didi

c++ - 在 vector 声明中初始化对象

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

我正在编写一个小型命令行解析库,您可以静态描述选项:

std::vector<Args::Descriptor> description{
{UNKNOWN, 0,'h' , "help", Args::None, "print this help"}
};

在我的库中,

struct Descriptor {
const uint option;
const int type;
const char shortopt;
const char* const longopt;
const CheckArg check_arg; // Function pointer
const char* help;
};

然后Descriptor用于初始化一个类:

Option(const Descriptor *descriptor)
{ … }

我可以通过初始化 vector 中的选项 来删除我的描述符结构吗?

std::vector<Args::Option> options{
{UNKNOWN, 0,'h' , "help", Args::None, "print this help"}
};

我的 Option 构造函数应该有什么签名?假设 Descriptor 类从代码中完全消失以简化它。

非常感谢:D

最佳答案

这是行不通的。 Option 的构造函数的参数是指向 Descriptor 的指针。 Descriptor 必须来自某个地方。您不能使用类本身的实例初始化指向类的指针。

不过,您可以按照您现在的做法构造一个 Descriptor vector 。

然后,使用指向 Descriptor vector 中各个值的指针初始化您的 Option vector 。

只要第一个 vector 保持不变,这就会起作用。

关于c++ - 在 vector 声明中初始化对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39307359/

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