2009-06-25

2009-06-pre-Frankfurt mailingが公開された

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/#mailing2009-06

とりあえず、現時点で興味深いものとしては、

Defining default copy and move
Copyコンストラクタのみを持っている型と、Moveコンストラクタのみを持っている型の両方をメンバにもつクラスは、copyもmoveもできないというお話。

Unified Function Syntax
local functionとnamed lambdaが復活してる。うれしいな。

The long pole gets longer
いつconceptに対応したコンパイラが出るのよ、というお話。まず、規格のスケジュールとしては、去年あたりから言われていたのだが、基本的に、今年の10月にFCDがでて、2010年にはFDISを出す予定。FDISがでれば、もう変更は無いので、コンパイラベンダーも安心して実装できる。ただ、ISOの規格として発行するには、その後も少々時間が必要で、まあ、2011年になるかなといったところ。conceptの実装も時間がかかる。まあ、実装が出揃うのは、よくて2011年。私見では、2011年にconceptをサポートするコンパイラが出たとしても、Betaという名を関しているだけだと思う。まともに使えるようになるのは、2013年あたりになるんじゃないかと思う。

New wording for C++0x Lambdas
lambdaの文面に関する疑問が各国から噴出したので、文面を書き直すよというお話。あと、sizeof、alignof、decltypeの中では、lambda expressionを使えないようにするらしい。そんなこと考えても見なかった。もし出来たとしたら、sizeof([] -> int8_t{return 0})なら1が帰ってくるのだろうか。decltypeはもっとひどい。なぜなら、すべてのlambda expressionは別の型を返すのだから、lambda expressionが完璧に同じでも、別の型になるはずだ。つまり、is_same< decltype([]{}), decltype([]{})> (decltype内は、引数なし、戻り値なしのlambda expression)は、falseのはずだ。

Simplifying the use of concepts
conceptのデフォルトをimplicitにしようというお話。いままで、implicitにするには、明示的にautoをつけなければならなかった。この提案は、明示的なconceptにしたい場合は、explicitをつけるようにする変更。このほうが分かりやすいと思う。

Exported Concept Maps
concept_mapの実装を、unconstrainedなコード(つまり、conceptを使っていないコード)でも使えるようにしましょうというお話。conceptの存在意義が疑われそうな提案だが、いかにもC++らしいといえばC++らしい。それに、実際このままでは、constrainedなコードと、unconstrainedなコードで、実装が重複してしまう。プログラマは単純なコピペを使うだろうと思われる。コピペされるだったら、使えるようにしたっていいんじゃないという意見は、わからないでもない。

Working Draft, Standard for Programming Language C++
会議前だし、大幅な変更は無い。

ほかにはasyncなどもあるけれど、正直スレッドプールが今すぐ欲しい。TR2に予定されているのだけれど。正直、スレッドの利用目的の大部分は、スレッドプールの方が適していると思う。

No comments: