ジェネリックスを使用してスマートポインタークラスを実装していますが、このクラスのユーザーに、次のような構文を使用してスマートポインターを適切に構築するように強制したいと思いました。
MyReference<TestCls>(mytest3))
また
MyReference<TestCls> mytest4(new TestCls());
そのため、これを防ぐために、CTORで明示的なキーワードを使用しました。
MyReference aRef = NULL;
しかし、私の手に負えない不幸な状況のために、私は古いMSVC++4.1コンパイラを使用してコンパイルされたコードに取り組んでいます。明示的なキーワードを含めると、次のエラーが発生します。
MyReference.h(49):エラーC2501:'explicit':欠落しているdecl-specifiers
MyReference.h(51):エラーC2143:構文エラー:欠落している';' ''
MyReference.h(52)の前:エラーC2238:'の前に予期しないトークン:'
MyReference.h(52):エラーC2059:構文エラー:'int定数'
それらを追加すると、#define explicit
これらのエラーは消えます。これは、コンパイラにキーワードを無視させるための、私の側のハックでした。これは、明示がyonoldeコンパイラでサポートされていないことを意味していると思います。誰かがこれを確認できますか?これに対する回避策の知識を持っている人はいますか?
Merci Beaucoups、デニス。