3

PolyBoolean というライブラリに出会いました。これは本質的に私の質問とは無関係です。ライブラリには、次のような奇妙な構造体型があります。

struct VNODE2
{
    VNODE2 * next;
    VNODE2 * prev;
    UINT32   Flags;
    union
    {
        VECT2 p;
        GRID2 g;
    };
}; 

GRID2 は次のように定義されます。

struct GRID2
{
    INT32 x, y;
};

GRID2点を定義し、 と に類似VECT2した点の別の表現です。構造変数があるとします。どうすればとの値を取得できますか? GRID2VNODE2nodeVNODE2v2xyg

を試してみv2.g.xましたが、vs2008 コンパイラでエラーが発生"error C2059: syntax error" しました。

4

2 に答える 2

0

v2.p と v2.g が動作するはずです。

struct VNODE2
{
  VNODE2 * next;
  VNODE2 * prev;
  union
  {
    int p;
    float g;
  };
}; 

int main()
{
  VNODE2 bla;
  bla.p = 17;
  std::cout << bla.p << std::endl;
  bla.g = 18;
  std::cout << bla.g << std::endl;
}

出力:

17

18

于 2013-05-03T14:54:52.050 に答える