Ho a che fare con un codice che non è stato scritto da me. Ho questa affermazione:
// p is type of std::unique_ptr<uint8_t[]>
if (p < 0) { /* throw an exception */ }
Quindi cosa p < 0
significa in questo contesto?
Sulla pagina di documentazione , credo che il mio caso è 16) y < nullptr
, dove 0
è nullptr
.
Ma che cosa fa?
p==-1
è un handle non valido. Dal momento che 2^64
è un numero ridicolmente enorme ogni ragionevole p
è sempre positivo. Quindi p<0
controlla l'handle non valido di WINAPI. Questo non è un buon codice.
uint8_t*
(o addirittura array di uint8_t
)? Penso che lo siano void*
, vero?
void*
sono hanno macro HANDLE_PTR o qualcosa che è fondamentalmente long*
iirc.