libstdc++の実装を読んでみると、テンプレート引数がunary_functionとbinary_functionの両方を継承していた場合、reference_wrapperも両方を継承するようになっていた。やはりDinkumwareは間違っている。
いい加減にVC++はDinkumwareを使うのをやめて欲しいところだ。Dinkumwareはいつもバグだらけ。
そういえば、ベースクラスを選ぶ部分のコードは、驚くほど同じだった。まあ、多重継承を避けようとして、できるだけわかりやすく書こうとすると、まずあんな形になるだろうが。違うのは、operator ()だ。こちとらの場合は、C++03で実装しているので、その制限のためだが。ああ、早くVariable Templatesが欲しいところだ。
Conceptがあれば、もうすこし実装も分かりやすくなると思うのだが。
No comments:
Post a Comment
You can use some HTML elements, such as <b>, <i>, <a>, also, some characters need to be entity referenced such as <, > and & Your comment may need to be confirmed by blog author. Your comment will be published under GFDL 1.3 or later license with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.