Search code examples
c++corbaomniorb

CORBA IDL to C++ - char vs. unsigned char?


We're using OmniORB with our C++ server. Currently, when an object is specified as a char in the IDL file, it is translated to an unsigned char in C++. We want it to be just char. Is there something we can change to make this happen?


Solution

  • It is implementation defined (page 15 in the spec) what the IDL types boolean, char and octet map to.

    omniORB chooses to:

    ...
    typedef unsigned char _CORBA_Char;
    typedef unsigned char _CORBA_Octet; 
    ...
    

    You can change the omniORB sources, though I doubt that would be a good idea. Or you can accept that CORBA::Char does not represent the C++ char type.