I’m working on the so called Hotspot open source project, and looking at the implementation I found a nasty nested union in struct looking like that:
typedef struct RC_model_t_st
{
union
{
struct block_model_t_st *block;
struct grid_model_t_st *grid;
};
/* block model or grid model */
int type;
thermal_config_t *config;
}RC_model_t;
As far as I’m aware in C/C++ that union is unaccesible. So how someone can make use of union declared in such manner and for what purpose?
Thanks!
This is an anonymous union. In C++, as per [class.union], paragraph 5:
This means you can access its members as if they were members of
RC_model_t_st.