overrideVisual C++ 2012 でC++11 キーワードの使用を強制する方法はありますか?
(つまり、言うoverrideのを忘れた場合、警告/エラーを取得したい。)
overrideVisual 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