Benim tarafımdan yazılmamış kodla uğraşıyorum. Bu ifade var:
// p is type of std::unique_ptr<uint8_t[]>
if (p < 0) { /* throw an exception */ }
Peki p < 0
bu bağlamda ne anlama geliyor?
Açık doküman sayfasına , benim dava olduğuna inanıyoruz 16) y < nullptr
nerede, 0
olduğu nullptr
.
Ama ne yapar?
p==-1
geçersiz bir tanıtıcı. Yana 2^64
bir ridicolously büyük sayıdır herhangi mantıklı p
her zaman pozitiftir. Yani p<0
WINAPI'nin geçersiz tanıtıcısını kontrol eder. Bu iyi bir kod değil.
uint8_t*
(hatta dizisi uint8_t
) olmalıdır? Bence onlar void*
, değil mi?
void*
makro ya da temelde long*
iirc olan bir şey değil.