2016-07-18 7 views
1

他のメソッドがオブジェクトの修飾子として機能するときに、IDEが静的メソッドを自動完了するのは面倒です。以下のようなコードをコンパイルエラーにする(インテリジェントな)方法はありますか?オブジェクト上で静的メンバー関数を呼び出す - コンパイルエラーにする方法はありますか?

// Translate along X and Y axes, rotate pi/4 about axis X; 
    QQuaternion q; 
    q.fromAxisAndAngle({1,0,0}, 45.0); // whoops, fromAxisAndAngle is static! 
    // Later: test fails, "wait why is my quaternion still identity!?" 

はおそらく、静的メソッドの戻り値のチェックのいくつかの種類は無視されて、それがClassFoo::StaticMethod()を通じてオブジェクトClassFoo().StaticMethod()ではなく、上で呼び出されていますか?

+2

_「IDEは迷惑です...」_実際にはどのIDEですか?たくさんあります! –

+1

エラーではないため、いいえ。 – EJP

+0

言葉:いいえ。これは有効なC++構文です。この場合、コンパイラが警告を発行すると、警告としてエラーとしてマークすることができます。なんで気にするの? – GreatAndPowerfulOz

答えて

1

コード内の「呼び出されたオブジェクト」の大文字と小文字は区別できません。構文的な単なるデバイスなのでです。呼び出しの結果は関係なく同じです。しかし、あるコンパイラがこれに関する警告診断をサポートしている可能性があります。もしそうであれば、その警告診断をコンパイルエラーにすることができます(例:g ++、-pedantic-errors).g ++に警告があるかどうかわかりませんコール)。

+0

またはすべての警告をエラーにする '-Werror';) –

関連する問題