User forums > General (but related to Code::Blocks)

hinting to anonymous union do not work?

(1/1)

rabidus:
Hello,

Is hinting to anonymous union work?

something like this:
>>>>>>> BLOCK START <<<<<<<<<<
struct RGB{
   float r,g,b;
};
struct HLS{
   float h,l,s;
}
struct Pixel{
   union{
      struct RGB rgb;
      struct HLS hls;
   };
} my_pixel;
>>>>>>> BLOCK END <<<<<<<<<<
 
and hinting do not work if I write:
my_pixel.rgb.??????

David Perfors:
after struct Pixel you mis ";" (without quotes)

eques.m:
No, i have not missed enything. Code is compilable properly, and work as it should. If here is any mistake, it was made during post writing.

thomas:

--- Quote from: mispunt ---after struct Pixel you mis ";" (without quotes)
--- End quote ---

A valid point  ;)
If your code does not miss that semicolon, it compiles without problems and works perfectly on gcc 3.4.2 MingW as well as gcc 3.4.3 FC3 -- tried both.

Depending on which compiler you use, you may get different results, however, and in particular, you may get different results when compiling C and C++.
ISO C++ does not allow anonymous structs, some compilers respect that, some others don't (and some do in only certain versions!).
In this case, when upgrading compiler you may suddenly face your code to stop compiling when it would before, so the best way is probably to not use anonymous structs at all.

gcc 3.x accepts this construct for backwards-compatibility:
http://gcc.gnu.org/onlinedocs/gcc-3.4.4/gcc/Unnamed-Fields.html#Unnamed-Fields

Navigation

[0] Message Index

Go to full version