Corba IDL:结构成员的默认值

Corba IDL: default value for struct members

是否可以在 CORBA IDL 中为结构成员定义默认值? 让我们以下面的结构为例:

struct Example
{
    boolean test;
};

如果我将此 IDL 编译为 C++,变量 'test' 将在对象创建后未初始化。我希望它始终设置为 false,直到它被明确切换为 true。

OMG IDL 到 C++ 的映射默认不初始化结构成员。正如您提到的,IDL 到 C++11 的映射确实为所有类型指定了默认值,包括所有基本类型。目前你有一个支持 C++11 的 compiler/OS 你应该能够使用 IDL 到 C++11 的映射,它不需要你在你的应用程序代码中使用 C++11。

我使用 omniORB 和 VisiBroker 来实现 CORBA。 None 个 idl 编译器支持默认值结构。