C ++ Стандартная структура и ссылки

Согласно стандарту C ++:

Класс стандартного макета — это класс, который:

— не имеет нестатических членов-данных типа нестандартного класса макета (или массива таких типов) или ссылки.

Какие свойства ссылок препятствуют включению классов с элементами ссылок в определение стандартного класса макета?

7

Решение

Стандартный класс макета — это все о наличии четко определенного макета для определенного типа в объем памяти. В C ++ ссылки не являются объектами, поэтому у них нет хранилища, которое может быть доступно определенным образом с помощью соответствующей программы, даже если для реализации обычно требуется какое-то хранилище для конкретной реализации.

По этой причине не имеет смысла иметь ссылочные элементы в чем-то, что должно иметь стандарт раскладка.

В стандарте в разделе о модели памяти C ++ есть ненормативная заметка, в которой упоминается это:

[Примечание: различные функции языка, такие как ссылки и виртуальные функции, могут включать дополнительные области памяти, которые не доступны для программ, но управляются реализацией. —Конечная записка]
11

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]