TAO中 “>>=“预算符 的含义

fp2001 2009-01-10 05:08:29
TAO中的">>="运算符的含义是什么?好象不是右移吧?

我在程序中定义了

navigatingEvent* navigating;
//其结构如下:
struct navigatingEvent
{
typedef navigatingEvent_var _var_type;
typedef navigatingEvent_out _out_type;


::CORBA::Double ifheading;
::CORBA::Double ifvertiangle;
::CORBA::Double ifhoriangle;
::CORBA::Double ibheading;
::CORBA::Double ibvertiangle;
::CORBA::Double ibhoriangle;
::CORBA::Double relativespeed;
::CORBA::Double absolutespeed;
::CORBA::Double northspeed;
::CORBA::Double eastspeed;
::CORBA::Double longitude;
::CORBA::Double latitude;
::CORBA::Double anglespeedx;
::CORBA::Double anglespeedy;
::CORBA::Double anglespeedz;
::CORBA::Double hacceleration;
::CORBA::Double vertipitchangle;
::CORBA::Double horipitchangle;
::CORBA::Double ifupdowndist;
::CORBA::Double ifupdownspeed;
::CORBA::Double ibupdowndist;
::CORBA::Double ibupdownspeed;
::CORBA::Double depth;
::CORBA::Double distance;
::CORBA::ULong status;
};
//同时有一个定义
const CORBA::Any &event

if(event >>= navigating)//报错

/*
navigatingEventConsumer.cpp:33: error: no match for 'operator>>=' in 'event >>= navigating'
d:/ACE_wrappers/TAO/tao/AnyTypeCode/Any.h:137: note: candidates are: CORBA::Boolean CORBA::Any::operator>>=(ACE_InputCDR::to_boolean) const
*/

但是如果我把
if(event >>= navigating)
改为
if(event >>= navigating->ifheading)//随便应用一个成员
却可以通过。
我只想if(event >>= navigating)这么操作,不知道如何更改?
...全文
76 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
fp2001 2009-01-10
  • 打赏
  • 举报
回复
还是有点不太懂啊....
楼上的能不能在细点?偶是新人,谢谢哈~~~
baihacker 2009-01-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 fp2001 的回复:]
后面还有很多类似这样干的错误我没有贴出来

CORBA::Boolean CORBA::Any::operator>>=(ACE_InputCDR::to_octet) const
d:/ACE_wrappers/TAO/tao/AnyTypeCode/Any.h:139: note: CORBA::Boolean CORBA::Any::operator>>=(ACE_InputCDR::to_char) const
d:/ACE_wrappers/TAO/tao/AnyTypeCode/Any.h:140: note: CORBA::Boolean CORBA::Any::operator>>=(ACE_InputCDR::to_wchar) const
d:/AC…
[/Quote]
晕,自己根据所要的进行重载就行了.
baihacker 2009-01-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 fp2001 的回复:]
后面还有很多类似这样干的错误我没有贴出来

CORBA::Boolean CORBA::Any::operator>>=(ACE_InputCDR::to_octet) const
d:/ACE_wrappers/TAO/tao/AnyTypeCode/Any.h:139: note: CORBA::Boolean CORBA::Any::operator>>=(ACE_InputCDR::to_char) const
d:/ACE_wrappers/TAO/tao/AnyTypeCode/Any.h:140: note: CORBA::Boolean CORBA::Any::operator>>=(ACE_InputCDR::to_wchar) const
d:/AC…
[/Quote]
自己提供对应的类型转换操作.
fp2001 2009-01-10
  • 打赏
  • 举报
回复
后面还有很多类似这样干的错误我没有贴出来

CORBA::Boolean CORBA::Any::operator>>=(ACE_InputCDR::to_octet) const
d:/ACE_wrappers/TAO/tao/AnyTypeCode/Any.h:139: note: CORBA::Boolean CORBA::Any::operator>>=(ACE_InputCDR::to_char) const
d:/ACE_wrappers/TAO/tao/AnyTypeCode/Any.h:140: note: CORBA::Boolean CORBA::Any::operator>>=(ACE_InputCDR::to_wchar) const
d:/ACE_wrappers/TAO/tao/AnyTypeCode/Any.h:141: note: CORBA::Boolean CORBA::Any::operator>>=(ACE_InputCDR::to_string) const
d:/ACE_wrappers/TAO/tao/AnyTypeCode/Any.h:142: note: CORBA::Boolean CORBA::Any::operator>>=(ACE_InputCDR::to_wstring) const

改成event >>= (int)navigating; 也不行啊,结构体变量这么可以转换成int类型呢?
fp2001 2009-01-10
  • 打赏
  • 举报
回复
楼上的可否说的清楚点啊?给个方法啊
baihacker 2009-01-10
  • 打赏
  • 举报
回复
event >>= (int)navigating;

好像event >>= navigating->ifheading右边是double,照理说也应该不能通过...不知道你这里的Double是不是double
baihacker 2009-01-10
  • 打赏
  • 举报
回复
注意数据类型!!!

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧