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 < 0significa 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<0controlla 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.