Struct definition after static if

Zarathustra adam.chrapkowski at gmail.com
Mon Dec 14 06:43:49 PST 2009


I must to put a 'struct definition' inside a 'static if block' but other 'struct definition' doesn't see them.

static if(_WIN32IE !< 0x0400)
struct TVINSERTSTRUCT{

  HTREEITEM hparent     ;
  HTREEITEM hinsertafter;

  union tagDUMMYUNIONNAME{
    TVITEMEX itemex;
    TVITEM item;
  }

  tagDUMMYUNIONNAME DUMMYUNIONNAME;
  
  alias DUMMYUNIONNAME.itemex itemex;
  alias DUMMYUNIONNAME.item   item  ;

}
else
struct TVINSERTSTRUCT{
  HTREEITEM hParent;
  HTREEITEM hInsertAfter;
  TVITEM item;
}

static if(_WIN32IE !< 0x0600)
struct TVITEMEX{
  UINT      mask         ;
  HTREEITEM item         ;
  UINT      state        ;
  UINT      statemask    ;
  TSTR      text         ;
  UINT      textmax      ;
  INT       image        ;
  INT       selectedimage;
  INT       children     ;
  LPARAM    lparam       ;
  INT       integral     ;
  UINT      stateex      ;
  HWND      hwnd         ;
  INT       expandedimage;
}
else
struct TVITEMEX{
  UINT      mask         ;
  HTREEITEM item         ;
  UINT      state        ;
  UINT      statemask    ;
  TSTR      text         ;
  UINT      textmax      ;
  INT       image        ;
  INT       selectedimage;
  INT       children     ;
  LPARAM    lparam       ;
  INT       integral     ;
}

It works only if I declare TVITEMEX before TVINSERTSTRUCT. And the second question, Is it possible to use anonymous unions and structs?


More information about the Digitalmars-d-learn mailing list