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 < 0
artinya dalam konteks ini?
Pada halaman dokumentasi , saya percaya kasus saya adalah 16) y < nullptr
, di mana 0
adalah nullptr
.
Tapi apa fungsinya?
p==-1
adalah pegangan yang tidak valid. Karena 2^64
jumlah yang luar biasa besar, setiap akal sehat p
selalu positif. Jadi p<0
periksa 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.