MyWackoSite: СпецкурсCxx/Осень2007?/КомментарииКЛекциям ...

Home Page | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация | Вход:  Пароль:  
Это старая версия СпецкурсCxx/Осень2007/КомментарииКЛекциям за 2007-09-25 23:05:52..

25 Сентября

Внутреннее представление ссылок

Стандарт (от 1998) говорит следующее:
8.3.2.1... Note: a reference can be thought of as a name of an object.
...
8.3.2.3 It is unspecified whether or not a reference requires storage (3.7).


Таким образом, важна лишь семантика ссылок, как объектов, которые представляют собой альтернативное имя для некоторого другого объекта. Как будет представленна ссылка компилятором полностью зависит от реализации.

Ссылка на ссылку

Там же:
8.3.2.4 There shall be no references to references, no arrays of references, and no pointers to references.

Безымянные структуры

Действительно, C++ позволяет объявлять безымянные структуры и классы (9.1):
class-specifier:
class-head { member-specificationopt }
class-head:
class-key identifieropt base-clauseopt
class-key nested-name-specifier identifier base-clauseopt
class-key nested-name-specifieropt template-id base-clauseopt
class-key:
class
struct
union

Соответственно, следующий код совершенно корректен:
typedef struct { int i; } S;


Впрочем, анонимные типы, точно так же должны подчиняться правилу одного определения, поэтому следующий код не будет компилироваться:
struct { int i; } s1;
struct { int i; } s2;

s1 = s2;

 
Файлов нет. [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]