そんなことする人嫌いです。

WTL を使い始めてコーディングをしていたりするのですが、そうなると必然的に ATL を #include する必要が出てきます。 まぁ、ATL自体は私自身興味があったので拒否はしませんし、 #include するだけというお手軽設計のようなので、この点は特に問題ありません。 というか、手軽に強力なライブラリが使えて逆に高感度高しです。(笑

で、この状態でサクサクとコードを打っていたのですが… この辺の人 から貰ったコードの中にあった "CCriticalSection" というクラスが "ATL::CCriticalSection" と被るとエラーが出てしまう。 …はて?

ATL は namespace で囲ってあるから別に被らないような気がするんだけれど、何でだろうk

 -- atlbase.h / line 5869 *1
#ifndef _ATL_NO_AUTOMATIC_NAMESPACE
using namespace ATL;
#endif //!_ATL_NO_AUTOMATIC_NAMESPACE


お前なにやっとんじゃああああああああーーーーーーーーー!!


よりによって、ヘッダーで using namespace かよ! いやまぁ、プリプロセッサで無効に出来るとはいえ、デフォで全部グローバルに持ってくる仕様はヤヴァイじゃろうにぃぃーーー!!

こんなワナが待ち構えている ATL ですが、このツンデレっぷり で高感度が上がりました。(何



…しかし、今回、今まで話にしか聞かなかった 「複数のライブラリで名前が被ってしまう問題」 を体験させていただきましたわ。 やっぱり (自分の含め)各ライブラリは独自の namespace で囲った方が良いですね。


…まぁ、そもそも、大抵の機能は ATL にあるので、ライブラリ自作しなくていいんじゃね?とかいう気がしないでもないんですが…(ぉ ^^;

*1:!?