std::size_t
обычно используется для индексации массива и подсчета циклов. По определению, std::size_t
– это беззнаковый целочисленный тип результата оператора sizeof
. а также оператор sizeof...
и оператор alignof
(начиная с C++11). Он определен в следующих заголовках:
<cstddef>
<cstdio>
<cstdlib>
<cstring>
<ctime>
<cwchar>
Насколько я понимаю, тип, возвращаемый этими операторами, определяется реализацией.
Что я хочу, так это определить пользовательский size_t
, чтобы избежать извлечения ненужных вещей из любого из упомянутых выше заголовков в моем файле .cpp
, поскольку в моем файле мне нужен только std::size_t
.
В С++ 11 и выше я думал, что могу использовать следующий псевдоним:
using size_t = decltype(sizeof(1));
Однако я хотел бы определить тип size_t
для компиляторов до С++ 11 переносимым/кросс-платформенным способом.
Итак, есть ли переносимый способ определить size_t
для версий до C++11?
size_t
, на самом деле не имеют никаких определений функций, это означает, что для них также не будет сгенерирован какой-либо код. Не могли бы вы подробнее рассказать о фактической проблеме, которую вы хотите решить, определив свой собственный тип подобным образом? - person Some programmer dude   schedule 13.06.2017cstddef
— довольно маленький заголовок с точки зрения символов. Действительно ли слишком много загрязнения пространства имен, чтобы втянуть его? - person StoryTeller - Unslander Monica   schedule 13.06.2017boost::typeof
- person NathanOliver   schedule 13.06.2017size_type
, которые вы можете использовать - person phuclv   schedule 13.06.2017