Здравствуйте, Erop, Вы писали:
E>Здравствуйте, _hum_, Вы писали:
__>>хотелось бы взглянуть
E>На что? Берёшь и пишешь с конкретными константами тоже самое...
__>>__>>An enumeration is a distinct type whose value is restricted to a range of values (see below for details), which may include several explicitly named constants ("enumerators"). The values of the constants are values of an integral type known as the underlying type of the enumeration.
__>>cppreference.com/enumeration declaration
E>ну и? "некий целочисленный тип". Почему int-то?
Ну это же не принципиально (просто в VS было именно так — по умолчанию шел int). Главное, что enum как тип обязательно привязан к другому типу, а значит, не является фундаментальным (что вы пытались оспорить).
E>Да, это тип для работы с числами, такой же как short, наример. Чем он менее "фундаментальный" чем short?
Если речь про enum, то я уже выше дал определение фундаментальности — независимость определения типа от других типов. Enum заивисит, а значит, не является фундаментальным.
__>>раз люди просят, значит, надо
E>Опять же не понятно, что мешает людям написать библиотеку тритсов для исчерпывающего перечня типов...
__>>__>>там же начнется головная боль с алиазами (считать uint8_t и char псевдонимами друг друга или нет?). да и зачем меня нагружать этой рутиной, когда могли бы в тайптрейтс (если это так просто) засунуть?
E>Во-первых, если совсем уж заморочиться, то можно шаблонной магией это порешать.
Это не поможет. Проблема-то именно в многообразии типов и не совсем прозрачной их операционной семантике (тот же chsr в VS может в зависимости от настроек проекта идти как unsigned char или signed char).
E>Во-вторых, если не страдать перфекционизмом, можно через условную компиляцию/версии хедеров для разных платформ/компиляторов сделать.
E>Только тут есть проблема. uint8_t нифига не "фундаментальный" тип в твоих понятиях, так что тока char, signed char и unsigned char...
Почему не фундаментальный-то? Это, насколько я понимаю, псевдоним для unsigned char.
E>Но, опять же, есть две независимые системы типов.
E>char, short, int, long, long long
E>и
E>int8_t, int_16_t, int32_t, int64_t...
E>Люди кторую из системов просят перенумеровать?
Люди хотят, чтобы перенумерованы были типы, которые отличаются операционной семантикой. Людям все равно, как называется тип, главное уверенность, что если номер одинаковый, то типы будут всюду в коде вести себя одинаково.