之前应为主表达式。代币 如何在结构上帮助C++中的结构成员快速和交互式地使用? struct op { bool fast; bool interactive; } format_options = { .fast = false, .interactive = true }; 你不需要这种风格的对象初始化(并且C++中不能这样做,因为C++是C99支持的),因为你可以使用构造函数。 struct op { bool fast; bool interactive; op () : fast(false), interactive(true) {} };

之前应为主表达式。代币 如何在结构上帮助C++中的结构成员快速和交互式地使用? struct op { bool fast; bool interactive; } format_options = { .fast = false, .interactive = true }; 你不需要这种风格的对象初始化(并且C++中不能这样做,因为C++是C99支持的),因为你可以使用构造函数。 struct op { bool fast; bool interactive; op () : fast(false), interactive(true) {} };,c++,C++,这将符合您的目的在结构声明后,从缺少的半collon中,您必须告诉编译器“format_options”是“op”类型。正确的代码是: struct op { bool fast; bool interactive; }; op format_options = { .fast = false, .interactive = true }; C99标记的初始化语法不是标准C++ C++的一部分,不,它不是官方C++。指定的初始值设定项在最新的C+

这将符合您的目的

在结构声明后,从缺少的半collon中,您必须告诉编译器“format_options”是“op”类型。正确的代码是:

struct op {
    bool fast;
    bool interactive;
};

op format_options = {
    .fast        = false,
    .interactive = true
};

C99标记的初始化语法不是标准C++ C++的一部分,不,它不是官方C++。指定的初始值设定项在最新的C++20草案中,但不在C++17中。默认情况下,g++允许它们(因为它有支持C99的代码和逻辑),但是如果添加-Wpedantic,它将指出这是无效的。