发现 gcc bug: error: non-static data member declared ‘auto’
在使用 C++14 的新特性改进 febird dataio 序列化库时(参见: febird 序列化与 C++14 的新特性),发现了一个 gcc 的 bug,可以抽象出精简代码如下:
1 2 3 |
struct A { friend auto f(A) { return A(); } // error: non-static data member declared ‘auto’ }; |
编译命令: g++ -std=c++1y test.cpp
前后浪费了我一个多小时的时间,很郁闷,跑去 gcc 的 bug 系统看了一下,发现这个 bug 在 2014-01-10 就有人报了:bug-59766
到现在已经 7 个半月了,状态竟然还是 Status:UNCONFIRMED
还好 clang 没有这个 bug,虽然这个 bug 比较烦,但好歹可以 Workaround 一下解决掉问题。