にゃははー

はへらー

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を修正して実装したのだろう。