powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / virtual methods
25 сообщений из 356, страница 11 из 15
virtual methods
    #39653277
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevТо, что это относительно однозначно будет работать на Intel архитектуре - всем понятно. Но стандарты на язык пишутся для разных архитектур. Об одном подводном камне (выравнивание) уже вспомнили.То есть, предлагаешь проверить всё это в g++ подобном компиляторе на платформе "Эльбрус", где существует некоторая типизация хранимых в памяти данных на уровне процессора? Не поверишь, но обычный Линух, собранный их же g++ подобным компилятором, работает на этой платформе, а в потрохах Линуха чего только нет... ;)
...
Рейтинг: 0 / 0
virtual methods
    #39653281
a guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly Moskovskya guestОткрой стандарт (или драфт). Там написано, как создаются объекты.
Понятно, т.е. ответа нет.Ты настолько беспомощен, что не можешь найти http://eel.is/c draft/intro.object#def:object ?
Я даже процитирую сюда
http://eel.is/c draft/intro.object#def:object An object is created by a definition ([basic.def]), by a new-expression, when implicitly changing the active member of a union ([class.union]), or when a temporary object is created ([conv.rval], [class.temporary]).
Если int a[2]; у тебя это definition, то да, там массив создаётся.

Anatoly MoskovskyИз этого можно сделать вывод что мальчик путает созданный массив и проинициализированный массив, и не считает первое массивом Мимо, как обычно.
...
Рейтинг: 0 / 0
virtual methods
    #39653291
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsevrdb_devпропущено...

В мемориз! Скриньте это, парни!!!Вот честно говоря, ничего смешного не увидел

A.Quest совершенно прав
Там массив char (и при этом даже "не сырая" память от какого нибудь malloc'а, а "честный" массив char)
А массив int, это массив другого типа.

То, что это относительно однозначно будет работать на Intel архитектуре - всем понятно. Но стандарты на язык пишутся для разных архитектур. Об одном подводном камне (выравнивание) уже вспомнили.Тогда объясни мне пожалуйста такой момент:
Допустим, я пишу на C++ какой-нибудь GRUB подобный загрузчик, работающий в реальном режиме адресации процессора семейства Intel x86 и мне надо перехватить прерывание divide by zero, перенаправив обработку этого исключения на свой обработчик этого прерывания, если:
a) Таблица векторов прерываний располагается по адресу 0000:0;
б) Я в своей программе не размещал и не инициализировал массив этой таблицы векторов прерываний по адресу 0000:0 (это сделал BIOS);
в) Вектор прерывания divide by zero является первым элементом этой таблицы, а взятие элемента по нулевому указателю, это UB;

Или, например, такой вариант:
MS DirectX использует прямой доступ к памяти видеоконтроллера, картированной на адресное пространство процессора. Как реализация DirectX должна работать с видеопамятью, если она не создавала этот "массив байт" видеопамяти, в котором находится массив структур RGB которые, при разных режимах работы видеоконтроллера, могут иметь разный размер - от 2 до 4-х байт? :)
...
Рейтинг: 0 / 0
virtual methods
    #39653298
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a guestЯ даже процитирую сюда
Правильно. Тот кто утверждает чушь и должен работать доказывая свои утверждения.
Остальным-то чего напрягаться.

Теперь доказывайте, что конструкция в которой в массиве uchar[] по очереди созданы элементы типа T, при том что все они помещаются внутрь того массива, не является массивом.
...
Рейтинг: 0 / 0
virtual methods
    #39653300
a guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly MoskovskyПравильно. Тот кто утверждает чушь и должен работать доказывая свои утверждения.Тогда почему ты утверждаешь чушь и не особо спешишь её обосновывать?

Anatoly MoskovskyТеперь доказывайте, что конструкция в которой в массиве uchar[] по очереди созданы элементы типа T, при том что все они помещаются внутрь того массива, не является массивом.Отсутствие не доказывают.
...
Рейтинг: 0 / 0
virtual methods
    #39653304
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a guestТогда почему ты утверждаешь чушь и не особо спешишь её обосновывать?
Ну, это же не я написал "вот код в котором UB".
Придется доказывать тому кто написал.
Пока не видно доказательства. Вместо этого видно, что утвержается что пол-языка это UB.
...
Рейтинг: 0 / 0
virtual methods
    #39653309
a guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly Moskovskya guestТогда почему ты утверждаешь чушь и не особо спешишь её обосновывать?
Ну, это же не я написал "вот код в котором UB".И этоAnatoly Moskovskyи никакой массив тут и не требуется. Достаточно чтобы там, по вычисленному адресу, который разыменовывается, был валидный объектне ты писал?
...
Рейтинг: 0 / 0
virtual methods
    #39653312
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyНу, это же не я написал "вот код в котором UB".
Придется доказывать тому кто написал.
Пока не видно доказательства. Вместо этого видно, что утвержается что пол-языка это UB.Более того - хренова туча написанных на Си/C++ и работающих программ, по заверениям "гостя" работать не должна и не может!
...
Рейтинг: 0 / 0
virtual methods
    #39653318
a guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rdb_devAnatoly MoskovskyНу, это же не я написал "вот код в котором UB".
Придется доказывать тому кто написал.
Пока не видно доказательства. Вместо этого видно, что утвержается что пол-языка это UB.Более того - хренова туча написанных на Си/C++ и работающих программ, по заверениям "гостя" работать не должна и не может! Цитату сюда, где я утверждаю такое.
...
Рейтинг: 0 / 0
virtual methods
    #39653324
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a guest, так что, ответ на это:
rdb_deva guestКак, если ты даже не умеешь читать? Покажи, с какого драфта ты скопировал то, что у тебя написано под спойлером.С какого драфта ты это цитировал, с того и взято. Я просто взял твою цитату драфта. будет? Или ты, таки, сам себя слил?
...
Рейтинг: 0 / 0
virtual methods
    #39653328
a guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rdb_deva guest, так что, ответ на это:
rdb_devпропущено...
С какого драфта ты это цитировал, с того и взято. Я просто взял твою цитату драфта. будет? Или ты, таки, сам себя слил?Смысл писать ответы, если ты не умеешь читать? Перечитай ещё раз, откуда бралась цитата и куда ты её приписал. Может, дойдёт после N-го перечитывания.
...
Рейтинг: 0 / 0
virtual methods
    #39653331
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a guestrdb_devпропущено...
Более того - хренова туча написанных на Си/C++ и работающих программ, по заверениям "гостя" работать не должна и не может! Цитату сюда, где я утверждаю такое.Разве не ты здесь утверждаешь, что UB, это полный "ай-ай-ай" и что массив обязательно должен быть создан и инициализирован программой прежде, чем иметь к нему доступ. Может еще массив должен быть создан и инициализирован в той же самой единице компиляции, в одном потоке исполнения, чтобы программа могла "честно" получить к нему доступ? :) Бедные писатели драйверов и сервисов... "а мужики-то не знают!". Что уж говорить про тех, кто пользует mapped-memory файлы...
...
Рейтинг: 0 / 0
virtual methods
    #39653332
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a guestСмысл писать ответы, если ты не умеешь читать? Перечитай ещё раз, откуда бралась цитата и куда ты её приписал. Может, дойдёт после N-го перечитывания.Еще раз для тех, кто в бронепоезде - это ТВОЯ цитата драфта, а не моя. :) Я лишь сделал copy-past и написал перевод.
...
Рейтинг: 0 / 0
virtual methods
    #39653338
a guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rdb_deva guestСмысл писать ответы, если ты не умеешь читать? Перечитай ещё раз, откуда бралась цитата и куда ты её приписал. Может, дойдёт после N-го перечитывания.Еще раз для тех, кто в бронепоезде - это ТВОЯ цитата драфта, а не моя. :) Я лишь сделал copy-past и написал перевод. Перечитай ещё раз. Явно не дошло.
...
Рейтинг: 0 / 0
virtual methods
    #39653340
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a guest, так где в этом примере UB, дружище? Покажешь?
Компилятор не ругается и собирает из команд процессора вполне ожидаемый и рабочий код... :)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
UINT8 buffer[sizeof(int) << 2];
PUINT8 c = &buffer[8];
int direction;
for (int i = 0; i < 100; i++)
{
  direction = std::rand() - RAND_MAX;
  if (direction > 0)
    c++;
  else
    c--;
  printf("c = '%c'", *c);
}
...
Рейтинг: 0 / 0
virtual methods
    #39653345
a guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rdb_devКомпилятор не ругается и собирает из команд процессора вполне ожидаемый и рабочий код... :)1. И что из этого следует?
2. "ожидаемы" — ещё понятно. А что такое "рабочий"? Нет недопустимых инструкций?
...
Рейтинг: 0 / 0
virtual methods
    #39653348
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a guest1. И что из этого следует?
2. "ожидаемы" — ещё понятно. А что такое "рабочий"? Нет недопустимых инструкций?Где в этом коде UB? :)
...
Рейтинг: 0 / 0
virtual methods
    #39653354
a guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rdb_deva guest1. И что из этого следует?
2. "ожидаемы" — ещё понятно. А что такое "рабочий"? Нет недопустимых инструкций?Где в этом коде UB?UB возникает во время выполнения и зависит от значений переменных.
Хочешь продолжать обсуждение ­— пиши код без изъёбов. Я не собираюсь разбираться в ветках if-ов и смотреть, что там на какой итерации цикла будет.
...
Рейтинг: 0 / 0
virtual methods
    #39653358
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a guestrdb_devпропущено...
Где в этом коде UB?UB возникает во время выполнения и зависит от значений переменных.И в чём же, во время выполнения, это UB выражается? :)
...
Рейтинг: 0 / 0
virtual methods
    #39653369
a guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rdb_deva guestпропущено...
UB возникает во время выполнения и зависит от значений переменных.И в чём же, во время выполнения, это UB выражается? :)В чём угодно.
...
Рейтинг: 0 / 0
virtual methods
    #39653374
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a guestrdb_devИ в чём же, во время выполнения, это UB выражается? :)В чём угодно.Например?
...
Рейтинг: 0 / 0
virtual methods
    #39653377
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_deva guestпропущено...
UB возникает во время выполнения и зависит от значений переменных.И в чём же, во время выполнения, это UB выражается? :)
Скомпилировал в QT. Запустил программу 2-а раза. Ищите отличия сами.
(почему она не свалилась на GPF я не очень понимаю)

В общем, вполне себе undefined бехевиар проявляется )))
...
Рейтинг: 0 / 0
virtual methods
    #39653378
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
virtual methods
    #39653380
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
virtual methods
    #39653381
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a guest
BarloneС памятью, выделенной malloc, работать как с массивом вообще никак нельзя, да?Пока там не создан массив с помощью placement new — нельзя.Интересная точка зрения. И главное, я не могу найти в стандарте ее опровержения. А есть какие-нибудь обсуждения, комментарии по этому поводу (кроме этой темы)?
...
Рейтинг: 0 / 0
25 сообщений из 356, страница 11 из 15
Форумы / C++ [игнор отключен] [закрыт для гостей] / virtual methods
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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