Re[21]: Правильные пацаны юзают правильные касты? :)
От: Кодёнок  
Дата: 23.01.08 06:24
Оценка: :)
Здравствуйте, Erop, Вы писали:

Кё>>Задача: объяснить блондинке разницу между двумя строчками. Главный козырь блондинки — вопрос «но почему пишется-то одинаково?»

Кё>> new A<x>(0);

E>П что тут объяснять?

E>UB оно UB и есть...

С какой стати это UB?
Re[22]: Правильные пацаны юзают правильные касты? :)
От: rg45 СССР  
Дата: 23.01.08 07:03
Оценка: +1
Здравствуйте, Кодёнок, Вы писали:

Кё>Здравствуйте, Erop, Вы писали:


Кё>>>Задача: объяснить блондинке разницу между двумя строчками. Главный козырь блондинки — вопрос «но почему пишется-то одинаково?»

Кё>>> new A<x>(0);

E>>П что тут объяснять?

E>>UB оно UB и есть...

Кё>С какой стати это UB?


Сравнивать указа тели на больше/меньше можно только в том случае, если они указывают на элементы одного массива, в противном случае: behavior is unspecified. Пункт стандартана на память не помню, знаю точно, что есть.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[23]: Правильные пацаны юзают правильные касты? :)
От: Кодёнок  
Дата: 23.01.08 07:25
Оценка: 6 (1) -1
Здравствуйте, rg45, Вы писали:

R>Сравнивать указа тели на больше/меньше можно только в том случае, если они указывают на элементы одного массива, в противном случае: behavior is unspecified. Пункт стандартана на память не помню, знаю точно, что есть.


Добавьте operator new для A, который вернёт &x[0], суть примера от этого не изменится.
Re[24]: Правильные пацаны юзают правильные касты? :)
От: rg45 СССР  
Дата: 23.01.08 07:36
Оценка:
Здравствуйте, Кодёнок, Вы писали:

Кё>Здравствуйте, rg45, Вы писали:


R>>Сравнивать указа тели на больше/меньше можно только в том случае, если они указывают на элементы одного массива, в противном случае: behavior is unspecified. Пункт стандартана на память не помню, знаю точно, что есть.


Кё>Добавьте operator new для A, который вернёт &x[0], суть примера от этого не изменится.


С такой поправкой да, пример становится well-formed.
Удивляет другое — ты с такой заботой относишься к этому примеру — чем это объясняется?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[25]: Правильные пацаны юзают правильные касты? :)
От: Кодёнок  
Дата: 23.01.08 11:02
Оценка: 6 (1)
Здравствуйте, rg45, Вы писали:

Кё>>Добавьте operator new для A, который вернёт &x[0], суть примера от этого не изменится.


R>С такой поправкой да, пример становится well-formed.


Она и была well-formed. Unspecified значит всего-лишь «зависит от реализации».
Re[26]: Правильные пацаны юзают правильные касты? :)
От: rg45 СССР  
Дата: 23.01.08 11:40
Оценка:
Здравствуйте, Кодёнок, Вы писали:

Кё>Здравствуйте, 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>>
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[24]: Правильные пацаны юзают правильные касты? :)
От: Erop Россия  
Дата: 23.01.08 15:47
Оценка:
Здравствуйте, Кодёнок, Вы писали:

Кё>Добавьте operator new для A, который вернёт &x[0], суть примера от этого не изменится.

А тогда уже new будет нехороший. Так как new вызванное дважды вообще-то должно вернуть разные адреса...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[25]: Правильные пацаны юзают правильные касты? :)
От: rg45 СССР  
Дата: 23.01.08 15:49
Оценка: :)
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, Кодёнок, Вы писали:


Кё>>Добавьте operator new для A, который вернёт &x[0], суть примера от этого не изменится.

E>А тогда уже new будет нехороший. Так как new вызванное дважды вообще-то должно вернуть разные адреса...

Выход прост: к нехорошему new прийдется написать нехороший delete
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
--
Не можешь достичь желаемого — пожелай достигнутого.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.