3/16 < とか > とかを &lt; &gt; を使わず生で書いているところが多々ありました。すいません。
直しました。

---------
cppllメーリングリストの投稿によると

C++の生みの親ストラウストラップ先生がC++にクロージャーを導入する言語拡張を提案しているらしいです。

提案自体は賛成、というかクロージャーできないおかげでいままでC++がどれだけ醜いプログラムになってきたかを考えれば遅すぎたぐらい。
特にSTL使うと関数オブジェクトつくりまくる羽目になるし・・・

しかし、しかしだ。
これはないんじゃないの?

以下、引用

挙げられていた例として,xとyを引数にとって合計を返すLambda関数は,

<> (int x, int y) -> int { return x + y; }

と表現されるようです。さらに'extern'キーワードにより,
Lambda関数外の変数を束縛できます。例えば,

int sum = 0;
for_each(a.begin(), a.end(), <> (int x) -> int extern(sum) { return sum
+= x; });

とすることにより,Lambda関数内でsumを参照し変更することができます。



さすがはC++の親!
シンタックスのセンスの悪さは余人の追従を許しません

元々のメールでは


これで無名関数やクロージャーを,Boost Lambdaのようなトリッキーな
コードではなく,自然な(?)構文で書けるようになりそうですね。



なんて書かれていますが、ドコが自然な構文なのかまるで分かりません。
まず -> が出てくるのが論外。これは見た瞬間にポインタに脳内置換される記号ですから他の意味に使ってはいけません。
特にこの両側に(見易さのために)空白を入れているのが致命的で意識して,(カンマ)を探さないとどこまでが1引数か分からんわい。

てゆーか、あきらめてlambdaをキーワードに格上げしようや。
それが駄目だったらGNUのマクロ拡張の(({x+y}))みたくカッコの拡張にしようや。

<>も意味分からんし。

氏は
<typename T> func(int x) からの連想で
<> (int x) が名無し、Non-Template関数だということが直感的に分かると思っているのかもしれないが、分かりませんから。普通

てか、C++は()を色々な意味で乱用しすぎーとか批判しておいて、こんどは自分で<>の乱用かよ。
おめでてーな。

てか、むしろC++に()乱用を入れたのはCFrontつまり、アンタだ。
と問い詰めたい、小一時間問い詰めたい。


どうか、この提案が廃案になってくれますよーに。


囲碁の解説
名人の差す手は分からん! ランキング!