GCC에서 어떤 점에서 <?
과 >?
연산자가 있다는 것을 알게되었습니다. GCC 4.5에서 어떻게 사용할 수 있습니까? 그들이 제거 되었습니까? 그렇다면 언제입니까?C 내선 번호 : <? and >? 연산자
Offset block_count = (cpfs->geo.block_size - block_offset) <? count;
cpfs.c:473: error: expected expression before ‘?’ token
GCC에서 어떤 점에서 <?
과 >?
연산자가 있다는 것을 알게되었습니다. GCC 4.5에서 어떻게 사용할 수 있습니까? 그들이 제거 되었습니까? 그렇다면 언제입니까?C 내선 번호 : <? and >? 연산자
Offset block_count = (cpfs->geo.block_size - block_offset) <? count;
cpfs.c:473: error: expected expression before ‘?’ token
최근 매뉴얼 say :
G ++ 최소 및 최대 사업자 ('
<?
'와 '>?
')과 화합물의 형태 ('<?=
')와 '>?=
') 사용되지 않으며 이제 G ++에서 제거됩니다. 이 연산자를 사용하는 코드는std::min
및std::max
대신 사용하도록 수정해야합니다.
이전 문서를 빠르게 검색하면 버전 4.0에서 제거되었음을 알 수 있습니다 (3.4.6은 포함, 4.0.4는 포함하지 않음). g++
(하지 C 컴파일러)의
G ++에서만 사용 가능 했었는데 잘못 읽었을 수 있습니다. –
@Matt Joiner 저것은 docs가 말하는 무슨이다, 그렇습니다 : "GNU C++ (그러나 GNU C에서 아닙니다"). –
링크를 제공 할 수 있다면 +1하고 싶습니다. –
이전의 반복은 당신에게 최소 또는 최대 값을주는 이러한 연산자를 사용하지만, 긴 std::min
및 std::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++ "확장 기능"(특히 비추천 및/또는 제거 된 기능)을 사용하는 데 큰 팬이 아닙니다. 특정 언어 구현과 관련되어 있기 때문입니다.
완벽하게 적절한 표준 방법을 사용할 수있는 경우 비표준 확장 프로그램을 사용하지 마십시오.
이 질문은 C에만 해당됩니다. –
이 질문에 대한 모든 사랑은 어디에서 왔습니까? 감사! –
PHP short-form 태그와 일치하는 일치 ... ?> – smci