BorlandC++5.5 で次のコードをコンパイルしようとすると、エラーになる。
// メンバ関数を持つクラス class CManiac { public: void Func(int) {} }; // 任意の型を引数とするテンプレートクラス template <typename T_any> class CAnother {}; typedef void (CManiac::*T_memberfunc)(int); // これは、問題ない。 typedef CAnother<void(CManiac::*)(int)> T_illegal; // BorlandC++5.5 では、何故かエラー // main が無いというエラーを避ける。 int main() { return 0; }
VC++6 や VC++.Net や g++ では、問題なく通るのだが。
いつもは優秀な BorlandC++5.5 で、これが通らないとは、ちょっと不思議だ。
セナ : 誰か回避方法が分かったら、店主に教えてあげて。もう、騒いじゃってうるさいのよね。
店主 : オッホン。言っておくが、コードが悪いのじゃないので、コンパイラの方を直すべきなのですぞ。