構造体定義が欠落している場合、 gccでautoが機能しないことに少し混乱しています。例えば:
0 struct foo;
1 typedef struct foo foo;
2 int test(foo* pFoo);
3 foo* pEvent = nullptr;
4 const auto var = test(pEvent);
4 行目のどこで、コンパイラはvarが何であるかを判断できないと不平を言います。test が宣言されているので、それは簡単なことだと思いました。何か不足していますか、それとも gcc 実装のバグですか?
編集:
すみません、悪いです。ツールチェーンは古い/バグのある gcc 4.4 を使用していました。4.6 の使用を強制すると、魅力的に機能します。