Tôi đang xử lý mã đã được viết không phải bởi tôi. Tôi có tuyên bố này:
// p is type of std::unique_ptr<uint8_t[]>
if (p < 0) { /* throw an exception */ }
Vậy p < 0trong bối cảnh này có nghĩa là gì?
Trên trang tài liệu , tôi tin rằng trường hợp của tôi là 16) y < nullptr, nơi 0là nullptr.
Nhưng nó làm gì?
p==-1là một xử lý không hợp lệ. Vì 2^64là một con số khổng lồ lố bịch nên bất kỳ sự hợp lý pnào cũng luôn tích cực. Vì vậy, p<0kiểm tra xử lý không hợp lệ của WINAPI. Đây không phải là một mã tốt.
uint8_t*(hoặc thậm chí là mảng uint8_t) không? Tôi nghĩ rằng họ là void*, phải không?
void*có macro HANDLE_PTR hoặc một cái gì đó về cơ bản là long*iirc.