2017-01-04 5 views
0

Est-il possible de définir une valeur par défaut pour les membres struct dans CORBA IDL? Prenons la struct suivante comme exemple:Corba IDL: valeur par défaut pour les membres struct

struct Example 
{ 
    boolean test; 
}; 

Si je compile ce IDL à C++, la variable « test » sera non initialisé après la création d'objets. Je voudrais qu'il soit toujours mis à false jusqu'à ce qu'il soit explicitement passé à true.

+0

Vous pouvez indiquer _how_ que vous compilez IDL en C++. Le langage C++ actuel autorise les initialiseurs pour les membres, c'est-à-dire 'bool test = false;' mais je ne sais pas si votre compilateur IDL comprend cela. – MSalters

+0

@MSalters Je pensais à une liste d'initialisation du constructeur. Malheureusement, je ne peux pas utiliser C++ 11. Pour la compilation, j'utilise omniidl de omniORB 4.0. – user3726374

Répondre

0

Le mappage OMG IDL vers C++ n'initialise pas par défaut les membres struct. Comme vous l'avez mentionné, le mappage IDL vers C++ 11 spécifie une valeur par défaut pour tous les types, y compris tous les types de base. Au moment où vous avez un compilateur/OS supportant C++ 11 vous devriez être capable d'utiliser le mapping IDL vers C++ 11, cela ne nécessite pas que vous utilisiez C++ 11 dans votre code d'application.

1

J'ai utilisé omniORB et VisiBroker pour l'implémentation de CORBA. Aucun de ces compilateurs idl ne supporte la structure de valeur par défaut.