2017-01-04 2 views
0

Можно ли определить значение по умолчанию для членов структуры в IDOR CORBA? Давайте возьмем следующую структуру в качестве примера:Corba IDL: значение по умолчанию для членов структуры

struct Example 
{ 
    boolean test; 
}; 

Если я скомпилировать этот IDL на C++, в «тесте» переменной будет UNINITIALIZED после создания объекта. Я бы хотел, чтобы он всегда был установлен в false, пока он явно не переключится на true.

+0

Возможно, вы захотите указать _how_, вы компилируете IDL на C++. Текущий C++ допускает инициализацию для членов, т. Е. 'Bool test = false;', но я не знаю, понимает ли ваш компилятор IDL. – MSalters

+0

@MSalters Я думал о списке инициализации конструктора. К сожалению, я не могу использовать C++ 11. Для компиляции я использую omniidl из omniORB 4.0. – user3726374

ответ

0

Отображение OMG IDL на C++ не инициализирует элементы структуры по умолчанию. Как вы упомянули, сопоставление IDL с C++ 11 указывает значение по умолчанию для всех типов, включая все базовые типы. На данный момент у вас есть компилятор/ОС, поддерживающий C++ 11, вы должны иметь возможность использовать сопоставление IDL с C++ 11, это не требует использования C++ 11 в вашем коде приложения.

1

Я использовал omniORB и VisiBroker для реализации CORBA. Ни один из этих компиляторов idl не поддерживает структуру значений по умолчанию.

Смежные вопросы