Где в стандарте C++ говорится об псевдониме? Я посмотрел на Ток и не заметил упоминания слова «псевдоним». Я попытался посмотреть в одном правиле определения (3.2), и поиск «псевдонима» не имел результатов. Я не понимаю, где это может быть. Я ищу память наложения спектровГде стандартный разговор об псевдониме?
ответ
Aliasing в основном обсуждаются в §3.10 [basic.lval]/10:
Если программа пытается получить доступ к сохраненному значению объекта через glvalue, отличные от один из следующих типов поведение не определенно:
- динамического типа объекта,
- вольтамперных квалифицированных вариант динамического типа объекта,
- типа похожи (как это определено в 4.4) с динамическим типом объекта,
- тип, который является знаком или без знака типа, соответствующего динамического типа объекта,
- тип, который подписанный или неподписанным типом, соответствующим соответствующей версии с открытым кодом динамического типа объекта,
- тип агрегата или объединения, который включает один из вышеупомянутых типов среди его элементов или нестационарные элементы данных (включая, рекурсивно, элемент или нестатический элемент данных суммирования или содержащий объединение),
- тип, который представляет собой тип базового класса (возможно, с квалификацией) для динамического типа объекта,
- a
char
илиunsigned char
.52) Цель этого списка указать те обстоятельства, в которых объект может или не может быть псевдонимами.
Так, например,
int x = 1;
*(char*)(&x); // (implementation-)defined
*(unsigned*)(&x); // (implementation-)defined
*(float*)(&x); // undefined
Ниже упоминаются также может быть интересно.
§5.17 [expr.ass]/8
Если значение хранится в объекте доступен из другого объекта, который перекрывается каким-либо образом хранение первый объект, то перекрытие должно быть точные и два объекта должны иметь один и тот же тип, иначе поведение не определено. [Примечание: Это ограничение относится к взаимосвязи между левой и правой сторонами операции назначения; это не утверждение о том, как цель присвоения может быть псевдонимом в вообще. См. 3.10. - примечание к концу]
§17.6.4.9 [res.on.аргументы]/1 пт 3:
Если аргумент функции связывается с опорным параметром RValue, реализация может предположить, что этого параметром является уникальной ссылкой на этот аргумент. ... [ реализация свободна оптимизировать далеко альясинг проверки, которые могут быть необходимы, если аргумент был именующим.]
§26.6.2 [valarray.syn]/2:
valarray
классы классов определены как свободные от определенных форм сглаживания, что позволяет оптимизировать эти классы на .
и остальная часть <valarray>
также обсуждают, как класс должен быть реализован во избежание сглаживания данных.
- 1. Bluemix Разговор, продвигающий разговор
- 2. Laravel получить разговор, где пользователи в массиве
- 3. Об общем указателе на char и строгом псевдониме
- 4. Альтернатива WHERE на псевдониме
- 5. не может ссылаться на псевдониме агрегатной функции, где положение подзапроса
- 6. Запрос MySQL. Не может делать ГДЕ на псевдониме ... альтернатива?
- 7. Где зарегистрирована информация о сервере/псевдониме, физически сохраненная?
- 8. Переменные в псевдониме
- 9. Справочная переменная в псевдониме
- 10. Строка формата в Псевдониме
- 11. Escape цитаты в псевдониме
- 12. zend также нуждается в псевдониме
- 13. JSON Разговор
- 14. Конкатенированная строка в псевдониме столбца
- 15. «неинициализированным постоянная ActiveModel :: Разговор
- 16. Как вводить разговор Бесконтактные бобы в сервлете
- 17. CDI Разговор без окончания
- 18. Где стандартный вывод QtCreator при отладке?
- 19. Где сообщение об исключении?
- 20. Перекресток типа машинописного типа в псевдониме типа
- 21. Watson Разговор поддерживает вложенные намерения?
- 22. Получение щебет разговор
- 23. ПРЕДУПРЕЖДЕНИЕ НИТИ - телефонный разговор
- 24. Codeigniter массив объекта разговор
- 25. Инициализировать разговор по услуге
- 26. Разговор «Много-ко-многим»
- 27. Двунаправленный многоязычный Строковый разговор
- 28. Формула в Ватсоне Разговор
- 29. получить последний разговор
- 30. Разговор заканчивается после выполнения?
Не могли бы вы быть более конкретными? Есть как минимум две вещи, на которые можно ссылаться с помощью «aliasing» - псевдонимов пространства имен и сглаживания данных в памяти через структуры/объединения/перекрывающиеся массивы. – dasblinkenlight
@dasblinkenlight: Исправлено. Алиасирование данных/памяти –