最近、次の難解なコードに出くわしました。
int main(){(([](){})());}
読みやすくするために、次のように再フォーマットします。
int main(){
(([](){})()); // Um... what?!?!
}
(([](){})())
しかし、有効なコードがどのように機能するかについて頭を悩ませることはできません。
- 関数ポインタ構文のようには見えません。
- オペレーターのオーバーロードのトリックではありません。コードはそのままコンパイルされます。
Google は、このすべての記号の検索であまり役に立ちませんでした。しかし、Visual Studio 2010 でコンパイルされ、何も出力されません。エラーも警告もありませんでした。したがって、有効なコードのように見えます。
JavascriptとC 関数ポインタ以外でこれほど奇妙で有効なコードを見たことがありません。
これが有効なC++であることを誰かが説明できますか?