Je suis en train de jeter un pointeur vers un int (ou unsigned int) et peu importe ce que j'essayer ne veut pas travailler.erreur: fonte de « Foo * » à « unsigned int » perd la précision
J'ai essayé static_cast<intptr_t>(obj)
, reinterpret_cast<intptr_t>(obj)
et diverses combinaisons de style C moulages, intptr_t
's, unsigned int
' s, et je suis compris stdint.h. D'après ce que j'ai lu, l'une des nombreuses choses que j'ai essayées devrait fonctionner. Ce qui donne?
Je ne l'ai pas pris la peine, y compris le code parce qu'il est exactement ce que je l'ai décrit, mais puisque vous avez demandé, je l'ai essayé toutes ces combinaisons ainsi que d'autres:
void myfunc(Foo* obj)
{
// ...
uintptr_t temp = reinterpret_cast<uintptr_t>(obj);
uintptr_t temp = static_cast<uintptr_t>(obj);
uintptr_t temp = (uintptr_t)obj;
intptr_t temp = reinterpret_cast<intptr_t>(obj);
intptr_t temp = static_cast<intptr_t>(obj);
intptr_t temp = (intptr_t)obj;
unsigned int temp = reinterpret_cast<unsigned int>(obj);
unsigned int temp = static_cast<unsigned int>(obj);
unsigned int temp = (unsigned int)obj;
// ...
}
Ils donnent exactement la même erreur.
Qu'est-ce que vous casting pour? Dites-nous le problème pas le pas. – GManNickG
Pourquoi faites-vous cela? En outre, incluez le code de problème. – JoshD
Quel compilateur utilisez-vous? –