- 217 名前:デフォルトの名無しさん mailto:sage [2006/11/29(水) 01:31:43 ]
- >215
標準ライブラリに対する rvalue reference の導入は 下位互換を完全に意識した設計が提案されているので >STLも仕様決め直しだし、 という見方は少し違うような気がします. std::auto_ptr などは deprecated なだけで廃止されるわけでもないですし. というよりか,現在の標準ライブラリにおける rvalue reference 対応の提案は, (いつものことですが) 下位互換の維持のために非常に設計が汚い印象があります. move に対応していない場合 copy に fallback する設計は, たとえば例外送出時のときなどの仕様と動作が極めて煩雑になるのではないか, など個人的には不満も多いです. (この汚さは標準ライブラリにおける rvalue reference 対応がもたらす汚さで, 言語仕様として導入される rvalue reference の仕様とは独立です) 言語仕様としての rvalue reference は, move semantics の導入と同時に, the forwarding problem と呼ばれる非常に重要な問題を同時解決しますし, (この問題の解決も見た目に比してインパクトが極めて大きいと思います) 『便利』程度の恩恵ではなく『マニア向け』の機能でもないと思います. 今現在,そもそも rvalue reference / move semantics 自体が机上の空論ですから, これについて今何を語っても "almost as much of a hoax as Artificial Intelligence" でしかないですが,それを承知であえて, rvalue reference / move semantics は OOP・汎用プログラミング・関数プログラミング・効率・リソース管理・例外安全性 スレッド安全性など,ほぼあらゆるプログラミングパラダイム・概念の全域, あと特にこれらの概念が交錯する領域での貢献が極めて大きい, C++0x における (C++98 以来) 最大の進化だと主張したいです.
|

|