プロフィール

kosaki

Author:kosaki
連絡先はコチラ

ブログ検索
最近の記事
最近のコメント
最近のトラックバック
リンク
カテゴリー
月別アーカイブ
RSSフィード
FC2ブログランキング

Bjarne Stroustrup による "Lambda expressions and closures for C++" このエントリーをはてなブックマークに追加

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つまり、アンタだ。
と問い詰めたい、小一時間問い詰めたい。


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


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

関連記事


プログラミング | 【2006-03-14(Tue) 03:57:42】 | Trackback:(1) | Comments:(5)
コメント

一応->は,省略可能なようですよ.
件のpdfの
Omitting the return type
に言及があります.
2006-03-13 月 22:31:18 | URL | 坩堝 #- [ 編集]
ウーン、「--へのトラックバックに失敗しました。 (Forbidden.)」と? http://d.hatena.ne.jp/m-hiyama/20060314/1142307363 です。
2006-03-13 月 22:38:39 | URL | m-hiyama #- [ 編集]

> 坩堝さん

おお、ありがとです。空目ってました。
もう一度、ちゃんと読み直さないとあかんな。

> hiyamaさん

あれ?
TBはうちは何も制限してませんよ。
今自分でトラックバックしてみましたが、エラーは出ませんでした。
たまたまFC2の調子が悪かったのかもしれませんなぁ
2006-03-14 火 02:09:03 | URL | 管理人 #- [ 編集]
このコメントは管理人のみ閲覧できます
2007-09-01 土 13:02:05 | | # [ 編集]
このコメントは管理人のみ閲覧できます
2007-10-09 火 07:15:08 | | # [ 編集]
ギョエー!!The C++ Programming LanguageBjarne Stroustrup[邦訳:プログラミング言語C++第3版]革命の日々! Bjarne Stroustrup による &quot;Lambda expressions and closures for C++&quot;&lt;&gt; (int x, int y) -&gt; int { return x + y; }
【2006-03-14 Tue 17:33:45】 | 404 Blog Not Found
  1. 無料アクセス解析