Estou lidando com código que não foi escrito por mim. Eu tenho esta afirmação:
// p is type of std::unique_ptr<uint8_t[]>
if (p < 0) { /* throw an exception */ }
Então, o que p < 0significa nesse contexto?
Na página de documentação , acredito que meu caso é 16) y < nullptr, onde 0está nullptr.
mas o que isso faz?
p==-1é um identificador inválido. Como 2^64é um número ridiculamente grande, qualquer sensível pé sempre positivo. Portanto, p<0verifica se há identificador inválido do WINAPI. Este não é um bom código.
uint8_t*(ou mesmo matriz de uint8_t)? Eu acho que eles são void*, não são?
void*eles têm macro HANDLE_PTR ou algo que é basicamente long*IIRC.