Здравствуйте, Erop, Вы писали:
Кё>>Задача: объяснить блондинке разницу между двумя строчками. Главный козырь блондинки — вопрос «но почему пишется-то одинаково?» Кё>> new A<x>(0);
E>П что тут объяснять? E>UB оно UB и есть...
Здравствуйте, Кодёнок, Вы писали:
Кё>Здравствуйте, Erop, Вы писали:
Кё>>>Задача: объяснить блондинке разницу между двумя строчками. Главный козырь блондинки — вопрос «но почему пишется-то одинаково?» Кё>>> new A<x>(0);
E>>П что тут объяснять? E>>UB оно UB и есть...
Кё>С какой стати это UB?
Сравнивать указа тели на больше/меньше можно только в том случае, если они указывают на элементы одного массива, в противном случае: behavior is unspecified. Пункт стандартана на память не помню, знаю точно, что есть.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
--
Не можешь достичь желаемого — пожелай достигнутого.
Здравствуйте, rg45, Вы писали:
R>Сравнивать указа тели на больше/меньше можно только в том случае, если они указывают на элементы одного массива, в противном случае: behavior is unspecified. Пункт стандартана на память не помню, знаю точно, что есть.
Добавьте operator new для A, который вернёт &x[0], суть примера от этого не изменится.
Здравствуйте, Кодёнок, Вы писали:
Кё>Здравствуйте, rg45, Вы писали:
R>>Сравнивать указа тели на больше/меньше можно только в том случае, если они указывают на элементы одного массива, в противном случае: behavior is unspecified. Пункт стандартана на память не помню, знаю точно, что есть.
Кё>Добавьте operator new для A, который вернёт &x[0], суть примера от этого не изменится.
С такой поправкой да, пример становится well-formed.
Удивляет другое — ты с такой заботой относишься к этому примеру — чем это объясняется?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
--
Не можешь достичь желаемого — пожелай достигнутого.
Здравствуйте, rg45, Вы писали:
Кё>>Добавьте operator new для A, который вернёт &x[0], суть примера от этого не изменится.
R>С такой поправкой да, пример становится well-formed.
Она и была well-formed. Unspecified значит всего-лишь «зависит от реализации».
Здравствуйте, Кодёнок, Вы писали:
Кё>Здравствуйте, rg45, Вы писали:
Кё>>>Добавьте operator new для A, который вернёт &x[0], суть примера от этого не изменится.
R>>С такой поправкой да, пример становится well-formed.
Кё>Она и была well-formed. Unspecified значит всего-лишь «зависит от реализации».
Да, точно.
1.3.13 unspecified behavior
behavior, for a well-formed program construct and correct data, that depends on the implementation. The
implementation is not required to document which behavior occurs.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
--
Не можешь достичь желаемого — пожелай достигнутого.
Здравствуйте, Кодёнок, Вы писали:
Кё>Добавьте operator new для A, который вернёт &x[0], суть примера от этого не изменится.
А тогда уже new будет нехороший. Так как new вызванное дважды вообще-то должно вернуть разные адреса...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
E>Здравствуйте, Кодёнок, Вы писали:
Кё>>Добавьте operator new для A, который вернёт &x[0], суть примера от этого не изменится. E>А тогда уже new будет нехороший. Так как new вызванное дважды вообще-то должно вернуть разные адреса...
Выход прост: к нехорошему new прийдется написать нехороший delete
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
--
Не можешь достичь желаемого — пожелай достигнутого.