Saya berurusan dengan kode yang telah ditulis bukan oleh saya. Saya memiliki pernyataan ini:
// p is type of std::unique_ptr<uint8_t[]>
if (p < 0) { /* throw an exception */ }
Jadi apa p < 0artinya dalam konteks ini?
Pada halaman dokumentasi , saya percaya kasus saya adalah 16) y < nullptr, di mana 0adalah nullptr.
Tapi apa fungsinya?
p==-1adalah pegangan yang tidak valid. Karena 2^64jumlah yang luar biasa besar, setiap akal sehat pselalu positif. Jadi p<0periksa untuk menangani WINAPI yang tidak valid. Ini bukan kode yang bagus.
uint8_t*(atau bahkan array uint8_t)? Saya pikir mereka begitu void*, bukan?
void*mereka memiliki HANDLE_PTR makro atau sesuatu yang pada dasarnya long*iirc.