C++のADLは、時として、意図しない結果を引き起こす。 // フサフサである自分の書いたコード // 独自のコンテナを実装している。 // 表示用のprint()関数は、用意していない。 namespace FusaFusa { template < typename T > class Container {} ; } // 同僚のハゲの書いたコード // コンテナに格納する要素クラスを実装している。 namespace Hage { template < typename T > class Element ; // Elementを表示するための、ジェネリックな関数。 // Fooを引数に取ることを意図していない。 template < typename T > void print(T) {} } // オブジェクトを印刷するための関数。 template < typename