http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57883
Bug ID: 57883 Summary: Feature request: better diagnostic for unknown type Product: gcc Version: 4.8.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: dushistov at mail dot ru $cat test.cpp //#include <cstddef> struct vec { double x; double y; double z; double& operator[](size_t i) { switch (i) { case 0: return x; case 1: return y; case 2: return z; } } }; g++ -c -Wall -std=c++11 test.cpp test.cpp:8:21: error: declaration of 'operator[]' as non-function double& operator[](size_t i) { plus more not related errors ... This is completly wrong message, but at the same time clang++ -c -Wall -std=c++11 test.cpp test.cpp:8:21: error: unknown type name 'size_t' double& operator[](size_t i) { ^ 1 error generated. It will be good if gcc also can give error with message that size_t undefined.