Существует ли целочисленный тип, который имеет тот же размер и выравнивание, что и указатель?
Есть std::intptr_t
и std::uintptr_t
, но я считаю, что они не имеют такого же выравнивания, как указатель как таковой.
Существует ли целочисленный тип, который имеет тот же размер и выравнивание, что и указатель?
Есть std::intptr_t
и std::uintptr_t
, но я считаю, что они не имеют такого же выравнивания, как указатель как таковой.
Не обязательно, чтобы все типы указателей имели одинаковый размер и выравнивание, что делает невозможным, чтобы какой-либо отдельный целочисленный тип имел тот же размер и выравнивание, что и все типы указателей.
Наверняка к указателям на объекты, указатели на функции и указатели на члены предъявляются разные требования. Но на некоторых платформах даже char*
и int*
имеют разный размер.
union
. Хотя это редко бывает полезно, виртуальные машины — один из тех случаев, когда они могут иметь смысл. - person MSalters   schedule 28.11.2015