override
Visual C++ 2012 でC++11 キーワードの使用を強制する方法はありますか?
(つまり、言うoverride
のを忘れた場合、警告/エラーを取得したい。)
override
Visual C++ 2012 でC++11 キーワードの使用を強制する方法はありますか?
(つまり、言うoverride
のを忘れた場合、警告/エラーを取得したい。)
C++11 には、必要なものがほぼ揃っていました。
元々、override
キーワードはより大きな提案 ( N2928 ) の一部であり、その使用を強制する機能も含まれていました。
class A
{
virtual void f();
};
class B [[base_check]] : public A
{
void f(); // error!
};
class C [[base_check]] : public A
{
void f [[override]] (); // OK
};
この属性により、キーワードbase_check
を使用せずに仮想関数をオーバーライドするとエラーになります。override
hiding
関数が基本クラスの関数を非表示にするという属性もありました。が使用されていて、関数がそれbase_check
を使用せずに基底クラスから非表示にするhiding
と、エラーになります。
しかし、ほとんどの提案は破棄され、属性ではなく「特別な意味を持つ識別子」として、final
および機能のみが保持されました。override