Oracle Solaris Studio 12.2 リリースの新機能

テンプレートの構文エラーの検出

次のテンプレートの構文は不正ですが、Sun C++ 4 および 5.0 では、エラーになりませんでした。5.1 以降のすべてのバージョンの C++ コンパイラでは、標準モード (デフォルトのモード) のコンパイルで、構文エラーとして報告されます。


        template<class T> class MyClass<T> { ... }; // definition error
        template<class T> class MyClass<T>; // declaration error

どちらの場合も、MyClass<T><T> は無効で、次に示すように削除する必要があります。


        template<class T> class MyClass { ... }; // definition
        template<class T> class MyClass; // declaration