【问题标题】:Corba IDL: default value for struct membersCorba IDL:结构成员的默认值
【发布时间】:2017-01-04 13:38:37
【问题描述】:

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

struct Example
{
    boolean test;
};

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

【问题讨论】:

  • 您可能想要指出如何将 IDL 编译为 C++。当前的 C++ 允许成员的初始化程序,即bool test = false;,但我不知道您的 IDL 编译器是否理解这一点。
  • @MSalters 我在想一个构造函数初始化列表。不幸的是,我不能使用 C++ 11。对于编译,我使用来自omniORB 4.0 的omniidl。

标签: c++ corba idl


【解决方案1】:

我使用omniORB 和VisiBroker 来实现CORBA。这些 idl 编译器都不支持默认值结构。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2016-09-19
      • 2012-11-22
      • 1970-01-01
      • 1970-01-01
      • 2011-01-09
      • 1970-01-01
      • 1970-01-01
      • 2013-07-02
      • 2010-11-17
      相关资源
      最近更新 更多