2010-10-16 22 views
12

tôi chạy qua những dòng sau của C++ mã trong một tập tin (dòng không tiếp giáp) mà gcc 4.2.1 sẽ không chấp nhận:Are>? hoặc <? các toán tử hợp pháp trong bất kỳ phương ngữ C++ nào?

int frame = blk <? mBlkCnt-1; 
mInsCnt = blk <? mBlkCnt; 
mInsCnt = mInsCnt+1 <? mBlkCnt; 
const int to_read = (mFileSz-byte_off) <? mBlkSz; 

Cả <?>? được sử dụng ở những nơi khác nhau trong các mã. Chúng dường như là một cách viết tắt để gán giá trị nhỏ hơn (hoặc lớn hơn) của hai giá trị, nhưng tôi chưa bao giờ thấy kết hợp toán tử này. Bất kỳ ý tưởng về những gì này là?

+0

Tìm kiếm của Google không bật một lần truy cập cho kết hợp ký tự đó. Có lẽ một lỗi mã hóa ký tự của nó trong một hoạt động cắt và dán. –

+3

@Amardeep: Google cũng không bật một lần truy cập cho ++. Bạn không thể google cho dấu chấm câu. – sepp2k

+0

@ sepp2K: Cảm ơn ... nó sẽ không có ý nghĩa nhiều đối với chỉ mục dấu câu, phải không? –

Trả lời

20

Chúng được gọi là min and max operators và là phần mở rộng ngôn ngữ trong các phiên bản trước của gcc.

Chúng không còn được hỗ trợ nữa.

+0

Tham khảo: http://gcc.gnu.org/onlinedocs/gcc-2.95.3/gcc_5.html#SEC107 http://gcc.gnu.org/onlinedocs/ gcc-4.5.1/gcc/Không được chấp nhận-Tính năng.html # Không được chấp nhận-Các tính năng – Potatoswatter

+1

+1 để khai sáng cho chúng tôi nhưng tôi rất vui vì chúng đã biến mất khỏi GCC. Tôi ghét phải nhìn thấy C++ bị những gì đã xảy ra với Java khi Microsoft đã làm phần mở rộng Visual J ++ của họ. –

+3

Đó là một liên kết hài hước. "Tuy nhiên, viết MIN và MAX là macro cũng buộc bạn sử dụng ký pháp gọi hàm cho phép toán số học cơ bản". Tối thiểu và tối đa là "hoạt động số học cơ bản"? –

2

Đây không phải là toán tử C++, điều đó chắc chắn. Nó gần như tương tự như một digraph, nhưng chắc chắn không phải là một hợp lệ. Trong bất kỳ trường hợp nào, một biểu đồ, nếu được hỗ trợ, sẽ chỉ dẫn đến dấu chấm câu, không phải là toán tử hoàn toàn mới.

Vì vậy, để trả lời câu hỏi của bạn, có lẽ tệp này cần được xử lý trước bởi một số bộ tiền xử lý chuyển đổi nó thành C++ hợp lệ.

+0

ví dụ về các hình vẽ là <% and %> đại diện cho {và} tương ứng –

Các vấn đề liên quan