C 확장:연산자들
나는 어느 순간에 그것이 있다는 것을 관찰했습니다.<?
그리고.>?
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::min
그리고.std::max
대신.
과거 문서를 빠르게 검색하면 버전 4.0(3.4.6에는 문서가 포함되지만 4.0.4에는 포함되지 않음) 즈음에 제거된 것으로 보입니다.
의 이전 반복g++
(C 컴파일러가 아님) 최소 또는 최대 값을 제공하기 위해 이러한 연산자를 사용했지만, 이들은 오랫동안 사용되지 않았습니다.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++ "확장"(특히 더 이상 사용되지 않거나 제거된 확장)을 사용하는 것을 좋아하지 않습니다. 이는 언어의 특정 구현과 관련이 있기 때문입니다.
완벽하게 적합한 표준 방법을 사용할 수 있는 경우에는 절대로 비표준 확장을 사용해서는 안 됩니다.
언급URL : https://stackoverflow.com/questions/3437410/c-extension-and-operators
'programing' 카테고리의 다른 글
데이터 테이블 - 데이터 테이블 외부의 검색 상자 (0) | 2023.08.07 |
---|---|
앵귤러는 vue.js와 같은 "슬립 속성" 기능을 가지고 있습니까? (0) | 2023.08.07 |
.asar 파일의 압축을 푸는 방법은? (0) | 2023.08.07 |
IB에서 UIView 크기를 조정할 수 없음 (0) | 2023.08.07 |
여러 번 반복되는 SQL CTE 재귀 (0) | 2023.08.07 |