質問

私はGCCで<?>?オペレータがいくつかの時点で存在したことを観察しました。どのように私はGCC 4.5の下でこれらを使用することができますか?彼らは削除されている、そうであれば、とき?

Offset block_count = (cpfs->geo.block_size - block_offset) <? count;
cpfs.c:473: error: expected expression before ‘?’ token
役に立ちましたか?

解決

最近のマニュアル に言います:

  

G ++最小および最大演算子(「<?」と「>?」)及びそれらの化合物の形態(「<?=」)と「>?=」)が推奨されており、今G ++から除去されます。これらの演算子を使用してコードの代わりに使用std::minstd::maxに変更する必要があります。

過去の文書の迅速な検索が(3.4.6がそれらを含み、4.0.4にはない)彼らは、バージョン4.0の周りに削除されたことを示していると思われる。

他のヒント

g++の以前の反復(のないのCコンパイラは)あなたの最小値または最大値を与えるために、これらの演算子を使用しますが、彼らは長いstd::minstd::maxの賛成で廃止されてきています。

基本的に、彼らは同一視する(しかし、のなしaまたはbの二重の評価の可能性):

a <? b       -->       (a < b) ? a : b
a >? b       -->       (a > b) ? a : b

のそれらを交換する必要があり、本当にあなた)、それらを置き換えるという点では、あなたのようなものを使用することができます

Offset block_count = cpfs->geo.block_size - block_offset;
if (block_count > count) block_count = count;

または同等物std::minを使用します。

私彼らは、言語の特定の実装に私を結びつけるため、C / C ++「の拡張機能」(非推奨および/または削除された、特にもの)を使用しての大ファンではないんです。

あなたは完全に適切な標準的な方法が利用可能である非標準の拡張機能を使用しないでください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top