powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / C++17 и константные указатели на динамическую память
8 сообщений из 33, страница 2 из 2
C++17 и константные указатели на динамическую память
    #39878747
Z axis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonZ axisпропущено...
Нет.
Интересный диалог получается.

Кстати если ты не заметил - то ты сюда пришёл с вопросом, а сюда понабежали тролли с какой-то чушью типа "invalid pointer value это не значение, а состояние" или "указатель это просто число", вместо того, чтобы на вопрос отвечать.
...
Рейтинг: 0 / 0
C++17 и константные указатели на динамическую память
    #39878748
Z axis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovmaytonНет такого контракта.

Хуже того, в операторе delete (и вообще delete) операнд вроде как не обязан быть lvalue.
А это тут при чём?
...
Рейтинг: 0 / 0
C++17 и константные указатели на динамическую память
    #39878753
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Z axisа сюда понабежали тролли с какой-то чушью типа "invalid pointer value это не
значение, а состояние" или "указатель это просто число", вместо того, чтобы на вопрос
отвечать.
Этои есть ответ на вопрос. Из стандарта надо не одну строку выдирать, но и определение
понятия на которое она ссылается.

Z axisА это тут при чём?

При всём. Так любимый тобой стандарт языка запрещает изменять rvalue.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
C++17 и константные указатели на динамическую память
    #39878755
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предвосхищая безсмысленный не-технический а гуманитарный спор, я считаю нужным закрыть этот топик.
...
Рейтинг: 0 / 0
C++17 и константные указатели на динамическую память
    #39878757
Z axis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Допустим, есть такой код:
Код: plaintext
1.
2.
3.
4.
5.
int main()
{
   int* const ptr = new int{};
   delete ptr;
}

Как известно, при освобождении памяти значения всех указателей меняются:
basic.stc/4When the end of the duration of a region of storage is reached, the values of all pointers representing the address of any part of that region of storage become invalid pointer values.
Но менять значения константных объектов нельзя (приводит к неопределённому поведению):
dcl.type.cv/4Except that any class member declared mutable can be modified, any attempt to modify a const object during its lifetime results in undefined behavior.
Получается, строка `delete ptr;` приводит к неопределённому поведению, т.к. (косвенно) меняет значение константного объекта?
...
Рейтинг: 0 / 0
C++17 и константные указатели на динамическую память
    #39878758
Z axis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovZ axisа сюда понабежали тролли с какой-то чушью типа "invalid pointer value это не
значение, а состояние" или "указатель это просто число", вместо того, чтобы на вопрос
отвечать.
Этои есть ответ на вопрос. Из стандарта надо не одну строку выдирать, но и определение
понятия на которое она ссылается.Принесёшь определение invalid pointer value не как значения, а как состояния?

Dimitry SibiryakovZ axisА это тут при чём?

При всём. Так любимый тобой стандарт языка запрещает изменять rvalue.Ты читал цитату из [basic.stc]/4 в первом посте? Там сказано «the values of all pointers». Про аргумент или не аргумент delete ничего не сказано.
...
Рейтинг: 0 / 0
C++17 и константные указатели на динамическую память
    #39878767
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Z axisДопустим, есть такой код:
Код: plaintext
1.
2.
3.
4.
5.
int main()
{
   int* const ptr = new int{};
   delete ptr;
}

Как известно, при освобождении памяти значения всех указателей меняются:
basic.stc/4When the end of the duration of a region of storage is reached, the values of all pointers representing the address of any part of that region of storage become invalid pointer values.
Ты не правильно переводишь. Здесь не говорится об изменении указателей.

Z axisНо менять значения константных объектов нельзя (приводит к неопределённому поведению):
dcl.type.cv/4Except that any class member declared mutable can be modified, any attempt to modify a const object during its lifetime results in undefined behavior.
Получается, строка `delete ptr;` приводит к неопределённому поведению, т.к. (косвенно) меняет значение константного объекта?[/quot]Это тоже не верный перевод. Ты путаешь константу с указателем.

В общем, возьми русский вариант спецификации или русский вариант учебника.

И не надо переоткрывать закрытые топики. Не надо.
...
Рейтинг: 0 / 0
C++17 и константные указатели на динамическую память
    #39879130
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Z axisДопустим, есть такой код:
Код: plaintext
1.
2.
3.
4.
5.
int main()
{
   int* const ptr = new int{};
   delete ptr;
}





Этот код вообще-то абсолютно валидный код.
Ты можешь создать константный объект и удалить его потом.
Если бы это было невозможно, то ты бы не мог создавать константные объекты динамически вообще.


Z axisКак известно, при освобождении памяти значения всех указателей меняются:
basic.stc/4When the end of the duration of a region of storage is reached, the values of all pointers representing the address of any part of that region of storage become invalid pointer values.Но менять значения константных объектов нельзя (приводит к неопределённому поведению):


Это всё к данному случаю не относится.

Z axisdcl.type.cv/4Except that any class member declared mutable can be modified, any attempt to modify a const object during its lifetime results in undefined behavior.
Получается, строка `delete ptr;` приводит к неопределённому поведению, т.к. (косвенно) меняет значение константного объекта?

Тут его нет.
...
Рейтинг: 0 / 0
8 сообщений из 33, страница 2 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / C++17 и константные указатели на динамическую память
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]