int(またはunsigned int)へのポインターをキャストしようとしていますが、何を試しても機能しません。
、、およびCスタイルのキャスト、's、 ' sのさまざまな組み合わせを試しましたがstatic_cast<intptr_t>(obj)
、stdint.hを含めています。私が読んだことから、私が試した多くのことの1つはうまくいくはずです。何が得られますか?reinterpret_cast<intptr_t>(obj)
intptr_t
unsigned int
私が説明したとおりのコードであるため、わざわざコードを含めることはしませんでしたが、あなたが尋ねたので、これらすべてに加えて他の組み合わせを試しました。
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;
// ...
}
それらはすべてまったく同じエラーを出します。