tao_idl -Gstl не отображает std :: string - PullRequest
0 голосов
/ 01 октября 2018

Я использую opendds и tao / ace для генерации кода из файла idl.

Мой файл idl:

struct SSave
{
    string strr;
};

Я генерирую код следующим образом:

opendds_idl Class.idl 
tao_idl -Gstl -I/usr/include/ Class.idl 
tao_idl -Gstl -I/usr/include/ ClassTypeSupport.idl
#-Gstl Generate the alternate C++ mapping for IDL strings and sequences

А вот что я получил в файле ClassC.h, например:

#include <vector>    
#include <string> //inclusion of string
{...}
struct  SSave
{

    // TAO_IDL - Generated from
    // /build/opendds-3.13/ACE_TAO/TAO/TAO_IDL/be/be_type.cpp:304
    typedef SSave_var _var_type;
    typedef SSave_out _out_type;

    static void _tao_any_destructor (void *); 

    ::TAO::String_Manager strr; //NOT std::string
};
{...}

Так есть ли способ сказать TAO сопоставить std :: string вместо :: TAO :: String_Manager?

Примечание: я использую tao_idl версии 2.5.1.

Заранее спасибо.

1 Ответ

0 голосов
/ 02 октября 2018

OpenDDS следует за отображением языка IDL в C ++, где строка IDL отображается в свой собственный конкретный тип (как генерирует tao_idl).В рамках AXCIOMA мы реализовали отображение языка IDL в C ++ 11 для DDS, которое будет поддерживать OpenDDS в следующем основном выпуске.

Кстати, вы ужеспросил this в списке рассылки OpenDDS и получил ответ там.

...