Преобразование void* ->int на x86_64
gcc отказывается компилировать на x86_64 конструкции типа reinterpret_cast<int>(some_void_ptr) (говорит "error: cast from 'void*' to 'int' loses precision"). Опытным путём было установлено, что в long он конвертирует нормально. Но: разве разрядность int не должна соответствовать разрядности системы, т. е. в случае i386 быть равной 32 битам и совпадать с long, а в случая x86_64 составлять 64 бита и совпадать с long long и с размером указателя? Почему же gcc тут находит какую-то потерю точности?

