プロジェクト

全般

プロフィール

バグ #1562

完了

サービスポートのサーバントクラスのメソッドの宣言に関する問題

kurihara さんが約14年前に追加. 12年以上前に更新.

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
-
開始日:
2010/06/03
期日:
進捗率:

100%

予定工数:

説明

IDLファイルにてstructを扱うオペレーションを定義した場合、RTCBにて生成されるコードに不具合があり、コンパイルエラーとなる。

以下は、メーリングリスト[openrtm-users 01258]にて報告された内容を引用。

たとえば,以下のidlファイルに対して,
--------------------------------
struct Frame {
  double mat[3][3];
  double pos[3];
};

interface ComFk {
  void set_tool(in Frame frm);
};
---------------------------------
RTCBuilderでは,スケルトンのテンプレート xxxx_impl.h で

   void set_tool(Frame frm);

のようなコードが生成されます.本来これは

   void set_tool(const Frame& frm);

となるべきだと思います.

なお、この件については、戻り値とoutパラメータがstructの場合にも不具合がある。
(戻り値とoutパラメータは、structが固定長構造体かそうでないかによっても変わるため注意が必要。)


ファイル

他の形式にエクスポート: Atom PDF