2016-05-12 7 views
5

私は別のプログラマーのコードで書かれたコードをブラウズしていました。私は最終的に、このコードに走った:「<?" and ">」とは何ですか? do in C++

inline const FLOAT minx() const { return p1.x <? p2.x; } 
inline const FLOAT maxx() const { return p1.x >? p2.x; } 

このコードはコンパイルされませんでした、と私はそれがこれにコードを変更することで動作させることができました:

inline const FLOAT minx() const { return p1.x < p2.x ? p1.x : p2.x; } 
inline const FLOAT minx() const { return p1.x > p2.x ? p1.x : p2.x; } 

そうすることによって、私はすでに想定することができますコードが何をすべきか。しかし、私の周りを検索する私はこのようにそれを実装する他の例を発見していない。これはちょうど悪いコードであり、コンパイルされていないか、これは特定のコンパイラで実際に動作しますか?

ありがとうございます。

+1

これらはGCC拡張です。 – MikeCAT

答えて

6

標準のC++ではなく、GCCの拡張機能です。

Deprecated Featuresから:)(<?=)G ++最小および最大演算子(<?>?)及びそれらの化合物の形態

>?=は推奨されており、今G ++から除去されます。これらの演算子を使用するコードは、代わりにstd::minstd::maxを使用するように変更する必要があります。

タイトルのとおり、廃止予定です。

+0

2005年4月からGCC 4.0以降廃止されました – ColdCat

+0

ありがとうございます。私はリンクしたページに従って、std :: minとstd :: Maxを代わりに使用するべきです。ご協力いただきありがとうございます。 –

関連する問題