lambdaについて調べてたら・・・
$ gcc --version gcc (GCC) 4.6.0 20101002 (experimental) Copyright © 2010 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
において、以下のコードがエラーを吐く。最新のn3126ではOKになってるのだが...。
まぁこんなコード書く人がそうはいないと思いたいが。
int main( void ) { int i; void hoge( int = ([]{ return sizeof i; })() ); }
というか思うにsizeofとかdecltypeでスコープ外の変数を渡せるってのは誤解を招くような気がするので禁止して欲しいというか。
で、今度はsizeofについて調べてたら、alignofが
int i; alignof i;
で通ってしまった。
alignofはtype-idしか受け取らないはずなんだが、しかも()なしで通る。sizeofを修正して実装したのだろう。