cout<<sizeof(int);
Такой код не выведет 8, даже если вы сделаете бочку. Что на 32-битной, что на 64-битной системе размер int составляет 4 байта. Вот sizeof(size_t) и sizeof(void*) на 64-битной платформе действительно равны 8, а sizeof(long) по стандарту языка и по мнению GCC-совместимых компиляторов равен 8, по мнению Visual Studio — 4.