template
class Validable{
public:
typedef T type;
inline friend bool operator!(const type& t){return !( t.operator bool() );}//OK
inline friend bool IsValid(const type& t){return ( t.operator bool() );}//ダメ
inline friend bool IsInvalid(const type& t){return !( t.IsValid() );}//ダメ
};
なんでoperatorだとコンパイル通るのにユーザ定義メソッドだとコンパイル通らないのかわからぬ・・・これ前にも出会ったことのある現象のような・・・うーん