c++ - tao_idl -GSTL 不映射 std::string

标签 c++ opendds

我正在使用 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 版本。

提前致谢。

最佳答案

OpenDDS 遵循 IDL 到 C++ 语言的映射,其中 IDL 字符串被映射到其自己的特定类型(如 tao_idl 生成)。作为 AXCIOMA 的一部分我们已经实现了IDL to C++11 DDS 的语言映射将在下一个主要版本中支持 OpenDDS。

顺便说一句,你已经问过 this在 OpenDDS 邮件列表中并得到了回复。

关于c++ - tao_idl -GSTL 不映射 std::string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52595054/

相关文章:

perl - 配置 OpenDDS

c++ - 为什么使用常量表达式作为模板参数?

c++ - 使用已知模型系数在 pcl 中绘制多条线

c++ - 在 C++ 中将 MD5 表示形式转换为十六进制

c++ - 更改指向 unique_ptr 的变量

android - 如何解决 ACE 和 Android 之间的冲突声明 (CPU_SET_T)?

build - OpenDDS 项目的 cmake

c++ - 如何使用 OpenDDS 3.13 安全

c++ - 如何循环浏览 QVBoxLayout 中的所有小部件