構造体のデフォルトコンストラクタは、typedefを使っているとなぜか使えない。
×
typedef struct
{
int p;
DATA(){p = 1;}
}DATA;
○
struct DATA
{
int p;
DATA(){p = 1;}
};
理由判明しました。
上記では、まだDATAという構造体は定義されていないので、
DATA()はコンストラクタではなく、ただの関数ということになっているのでした。
名前が先に来ない前に関数がぽつんとあるので、そりゃコンストラクタとして走らんわけですな。