2011-05-21 85 views
4

可能重複:
What does the >?= operator mean?如何使'<?='在C++中可用?

我發現這個代碼段

... 
for(k=i+1;k<j;k++) r <?= go(i,k,b)+go(k,j,b); 
for(k='A';k<='Z';k++) r <?= 1+go(i,j,k); 
... 

我感興趣的<?=運營商。在我看來,它應該將r的值與運營商的右側相比較,並且在右側大於r的情況下,它應該將右側分配給r。我想知道這個(以及類似的操作符,我想是)在哪裏定義的,我該怎麼做才能使它們可用於g ++編譯器?

+1

很可惜,這沒有標準的操作符。我經常使用這種類型的賦值,以至於我傾向於將它作爲一個成員函數'numclass :: push_downto(const numclass&)'包含在類數類中,但這不是一種很好的風格,你根本就做不到對於普通的原始類型。 – leftaroundabout 2011-05-21 01:07:07

+0

這是最小的估算算子,如果右側較小,則分配該值 – hirschhornsalz 2011-05-21 01:31:08

回答

16

<?=運算符是在版本4.2中刪除的GCC擴展。請參閱this question

改爲使用std::min

+1

+1正確,先生。 – 2011-05-21 00:49:27

2

我不認爲這是一個有效的C++運算符

+1

不是標準的,而是一個擴展。 – 2011-05-21 00:48:48

+2

@Tomalak:...所以它不是一個有效的*標準* C++操作符。這不值得讚賞。 – 2011-05-21 00:53:55

+0

這是一個非常有效的C++操作符。如果答案正確指定了標準vs擴展,那就是正確的。而且,爲了它的價值,我沒有降低它的價值。 – 2011-05-21 01:54:12

0

不可行。 C++支持的運算符是固定的,您不能添加新運算符。

+1

執行擴展可以。 – 2011-05-21 00:48:54

+3

GCC是* NOT * C++。該標準沒有定義這樣的運營商。 – 2011-05-21 00:51:23

+0

「C++」可以理解爲「標準C++」或「實用C++」。沒有限定詞,這是不明確的。 – 2011-05-21 01:55:05