boost::spirit::tree_nodeのswapとstd::sort

('A`) ハァ…疲れた.
Spiritで生成した構文木(ASTだけど)のノードをソートするという「何故そんなことをする必要があるのか?」的ことをやっていて,そのためにstd::sortを使っていたんだけど,MSVC++7.1とGCCで挙動が違ってその原因追求にかなり四苦八苦してた.
原因は

template<class T>
void boost::spirit::swap(boost::spirit::tree_node<T> &, boost::spirit::tree_node<T> &);

をstd::sortがADL経由でlook-upしてくれるかどうか使ってくれるかどうかの違いだった.GCCのstd::sortはこのオーバーロードADL経由でlook-upしてくれない使ってくれない模様・・・.GCCのstd::sortの実装読んでないけれどADLがbugってるかsortを名前空間のqualification付けた形で呼んでいるかのどちらかだにゃ,こりゃ.GCCのstd::sortはstd::iter_swap呼ぶけれどそのstd::iter_swapがswapを呼ばない実装なので,上のオーバーロードは呼ばれるわけがない,ってオチ.っていうか,以前から自分自身で指摘していた問題(id:Cryolite:20041023#1とか参照)そのまんまな問題にハマってやんのorz.これ書いてた当時はまさか自分自身がこれにハマるとは夢にも思っていなかった・・・.っていうか,早くADL経由でlook-upされるユーザー定義のswapのオーバーロードへの委譲を明確化するよう標準の文言を修正して下さい・・・.おながいします・・・.
っていうか,そもそもboost::spirit::tree_nodeはassignableだからデフォのstd::sortでもsemanticsは変わらないはずなのになんでそっちだと挙動が変わりますか?原因追求してfeedbackしたいけれどそんな時間にゃいですよ・・・.
#う〜?swapはunqualifiedで呼ばれてるし,似たような状況で試してみても特にADLがbugってるわけじゃないみたいだし・・・???
#まさかGCCだとバグってましたとかそういうオチはないよな・・・.
#あ〜そういうオチか.そりゃiter_swapがswap呼ばない実装だといくらswapオーバーロードしても呼ばれんわなorz.早くこれ標準改定してください.おながいします,このとおりです・・・.
#全然関係ないけれどGCCのヘッダのファイル群の中にboostのBCCLのヘッダ(・∀・)ハケーン.

Boost.Test + GCC (+ Boost.Build v2)ではabort禁止?

う〜,Boost.Test + GCCだとassertで落ちてくれにゃい・・・.試してみたらabortで落ちにゃい・・・.Boost.Test使ったテストではabort使っちゃダメなんてことドキュメントに書いてあったっけかな・・・?直接テスト実行してるならctrl + cでテストプログラムのプロセスが死んで戻ってくるけれど,お気に入りのunit-test@BBv2 + Boost.Testだとプロセスを他から明示的に殺さないとbjamに戻ってこない・・・.下手するとbjamに戻ってきても裏で密かにテストのプロセスが生きたままメモリを食っていっているという恐ろしい状況が・・・(自分のコードがおかしいわけじゃないですよよよ?).もしかしてcygwinなせい?
こりゃabortする代わりにstd::logic_errorあたりを投げろってことなのかにゃ?例外投げたらwhatの内容勝手にコンソールに表示してこっちはちゃんと落ちてくれるしにゃ〜.特に不満無い(というかこっちの方が色々(゜д゜)ウマーだ)から今度からこっちに統一しとくかにゃ〜.

収穫物

いや,これ買った(というか買ってもらった)の去年の暮れなんですけどね.うちの母親が携プレ欲しいというので,今まで自分が使ってたasin:B0000CG1LP:titleをあげて代わりにこれを入手.一緒にMX-550買うつもりだったけれど売ってなかった.で,帰って開けてみるとMX-400が付いてた.中途半端にグレードアップしたから(今までMX-300使ってた)MX-550買うモチベーションが下がってしまったよ.
HDDの携プレは好きなれないというか,やっぱりフラッシュメモリと比較すると構造的な弱さが気になって買えない.大容量は魅力だけど1GBもあれば十分だと思うんだけどにゃ.
これで--preset 128から--preset mediumへエンコードの質をグレードアップして,いっぱい曲入れるにょ.うふふ・・・.
#I'veの曲だけで埋まってしまうというオチ.
#ちなみに上見たら分かりますが自分SENNHEISER儲ですので・・・.HD-650( ゜д゜)ホスィ….