LINUX.ORG.RU

История изменений

Исправление pavlick, (текущая версия) :

В этом.

Ну мы же понимаем, что речь о том, что нельзя итерироваться по массиву Derived имея на руках указатель на Base, как бы логично. Если что-то там в стандарте не ясно написано, то допилят. Запись/чтение через чар разрешена в стандарте явно, никто не будет запрещать арифметику, это просто бред:

If a program attempts to access (3.1) the stored value of an object through a glvalue whose type is not similar (7.3.5) to one of the following types the behavior is undefined:
—(11.1)the dynamic type of the object,
—(11.2)a type that is the signed or unsigned type corresponding to the dynamic type of the object, or
—(11.3)a char,unsigned char, or std::byte type

access - (execution-time action) read (7.3.1) or modify (7.6.19, 7.6.1.5, 7.6.2.2) the value of an object

Ты абсолютно не понял, что там написано.

А о чем там тогда первая проблема?

Исходная версия pavlick, :

В этом.

Ну мы же понимаем, что речь о том, что нельзя итерироваться по массиву Derived имея на руках указатель на Base, как бы логично. Если что-то там в стандарте не ясно написано, то допилят. Запись/чтение через чар разрешена в стандарте явно, никто не будет запрещать арифметику, это просто бред:

If a program attempts to access (3.1) the stored value of an object through a glvalue whose type is not similar (7.3.5) to one of the following types the behavior is undefined:
—(11.1)the dynamic type of the object,
—(11.2)a type that is the signed or unsigned type corresponding to the dynamic type of the object, or
—(11.3)a char,unsigned char, or std::byte type

access - (execution-time action) read (7.3.1) or modify (7.6.19, 7.6.1.5, 7.6.2.2) the value of an object

Ты абсолютно не понял, что там написано.

А в чем?