Re[18]: Индекс по типу
От: _hum_ Беларусь  
Дата: 07.04.16 10:10
Оценка: +1
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, _hum_, Вы писали:


E>>>Да, это тип для работы с числами, такой же как short, наример. Чем он менее "фундаментальный" чем short?


__>>Если речь про enum, то я уже выше дал определение фундаментальности — независимость определения типа от других типов. Enum заивисит, а значит, не является фундаментальным.


E>Так чем short более фундаментален, чем
enum { start = 0, end = 10000 };
?

E>И то и то поддерживается процессором, и то и то числа, поддиапазон int, и то и то занимает 2 байта...

см. ниже определение типа и фундаментальности. а вообще, en.cppreference.com/w/cpp/language/type


__>>Это не поможет. Проблема-то именно в многообразии типов и не совсем прозрачной их операционной семантике (тот же chsr в VS может в зависимости от настроек проекта идти как unsigned char или signed char).

E>И что? Это шаблонной магии не мешает..

ну, тогда я не понимаю, что вы имеете в виду...

E>>>Во-вторых, если не страдать перфекционизмом, можно через условную компиляцию/версии хедеров для разных платформ/компиляторов сделать.


E>>>Только тут есть проблема. uint8_t нифига не "фундаментальный" тип в твоих понятиях, так что тока char, signed char и unsigned char...


__>>Почему не фундаментальный-то? Это, насколько я понимаю, псевдоним для unsigned char.


E>Тогда я совсем не понимаю, что ты называешь "фундаментальный"...



Опять же, если ссылаться на cppreference.com

Objects, references, functions including function template specializations, and expressions have a property called type, which both restricts the operations that are permitted for those entities and provides semantic meaning to the otherwise generic sequences of bits.

то есть, в с++

тип = множество значений + множество допустимых операций над этими значениями (включая оперирование с бинарным представлением)


фундаментальным (в моем понимании) называется тип, определение которого не опирается на существование и свойства других типов.


E>Псевдоним у тебя фундаментальный, а enum нет?

E>Если вернуться к стандарту и его "встроенным" типам, то enum и указатель — встроенные...

псевдоним — это просто второе название одной и той же сущности (в данном случае типа).

__>>Люди хотят, чтобы перенумерованы были типы, которые отличаются операционной семантикой. Людям все равно, как называется тип, главное уверенность, что если номер одинаковый, то типы будут всюду в коде вести себя одинаково.


E>Ну это фигня. Легко делается. Вот если ты ещё потребуешь, что бы если номер разнй, то будут вести по-разному, то будет хуже...


вот вы все говорите "легко" и "фигня", а так ни разу еще даже набросок решения не показали
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.