https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70229
--- Comment #1 from baoshan <pangbw at gmail dot com> --- The error is triggered by the typedef clause, but it is valid according standard C++11 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3376.pdf: ... — either its function-body shall be = default, or the compound-statement of its function-body shall contain only — null statements, — static_assert-declarations — typedef declarations and alias-declarations that do not define classes or enumerations, ...