powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / virtual methods
25 сообщений из 356, страница 14 из 15
virtual methods
    #39654036
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a guestrdb_devЧего тебе еще?Покажи, где стандарт C++ явно оговорил запрет VLA.Не знаю... Может ты мне подскажешь, в каком месте стандарта C++ указано что VLA - forbids?
Компилятор g++, без дурацких параметров командной строки собирает и не жужжит...
...
Рейтинг: 0 / 0
virtual methods
    #39654038
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevНо draf то опысывает как раз по другому. Не "учитывается размер", а то, что будет выбран корректный элемент в массиве. Т.е. ограничивает всю "арифметику" исключительно перемещением по массиву (при этом, еще и с запретом выхода за пределы массива)Ничего подобного!
http://eel.is/c++draft/expr.post#expr.sub]The expression E1[E2] is identical (by definition) to *((E1)+(E2)), except that in the case of an array operand, the result is an lvalue if that operand is an lvalue and an xvalue otherwise.
...
Рейтинг: 0 / 0
virtual methods
    #39654052
a guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rdb_devrdb_devпропущено...
Это означает лишь одно - в стандарте C++ явно оговорили данное отличие от наследуемого Си. Что тебя, опять, не устраивает? Не знаю... Может ты мне подскажешь, в каком месте стандарта C++ указано что VLA - forbids?Прям явно — нигде такого не написано. По крайней мере я не находил такого.
...
Рейтинг: 0 / 0
virtual methods
    #39654056
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a guestrdb_devНе знаю... Может ты мне подскажешь, в каком месте стандарта C++ указано что VLA - forbids?Прям явно — нигде такого не написано. По крайней мере я не находил такого.Удивляешь ты меня раз за разом...
11.3.4
...
Рейтинг: 0 / 0
virtual methods
    #39654059
a guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rdb_deva guestпропущено...
Прям явно — нигде такого не написано. По крайней мере я не находил такого.Удивляешь ты меня раз за разом...
11.3.4 Ты понимаешь слово "явно"? Неявно оно следует из ограничения на выражение, задающее размер. Которое должно быть константным.
"Явно" — это если бы в http://eel.is/c draft/diff.iso (This subclause lists the differences between C++ and ISO C) явно написали, что VLA в C++ нет, хотя они есть в C.
...
Рейтинг: 0 / 0
virtual methods
    #39654062
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a guestТы понимаешь слово "явно"? Неявно оно следует из ограничения на выражение, задающее размер. Которое должно быть константным.
"Явно" — это если бы в http://eel.is/c draft/diff.iso (This subclause lists the differences between C++ and ISO C) явно написали, что VLA в C++ нет, хотя они есть в C.То есть D1 [constant-expression] attribute-specifier-seq это недостаточно явно, ага?
...
Рейтинг: 0 / 0
virtual methods
    #39654065
a guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rdb_deva guestТы понимаешь слово "явно"? Неявно оно следует из ограничения на выражение, задающее размер. Которое должно быть константным.
"Явно" — это если бы в http://eel.is/c draft/diff.iso (This subclause lists the differences between C++ and ISO C) явно написали, что VLA в C++ нет, хотя они есть в C.То есть D1 [constant-expression] attribute-specifier-seq это недостаточно явно, ага?То есть 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]) это недостаточно явно говорит о том, что malloc не создаёт объекты и что массивы не самозарождаются?
...
Рейтинг: 0 / 0
virtual methods
    #39654090
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то раздухарились вы на 14 страниц...
Там есть что-то интересное?
...
Рейтинг: 0 / 0
virtual methods
    #39654103
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже нет.
Даже лагеря сохраняют состав.
...
Рейтинг: 0 / 0
virtual methods
    #39654247
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivЧто-то раздухарились вы на 14 страниц...
Там есть что-то интересное?вечером под попкорн можно почитать ))
...
Рейтинг: 0 / 0
virtual methods
    #39654267
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv, свист банхаммера ласкает ухо. Заржавел поди твой инструмент?
...
Рейтинг: 0 / 0
virtual methods
    #39654398
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a guestэто недостаточно явно говорит о том, что malloc не создаёт объекты и что массивы не самозарождаются?Библиотечная функция malloc и в Си никогда не создавала объекты...Её задача - выделение из кучи участка запрошенного размера. Не больше, не меньше.

Массив переменной длины на стеке. Код без проблем компилируется с флагом -pedantic-errors
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
  std::srand(time(0));
  size_t sz = (int)std::rand() & 0x1F;
  if (!sz) sz = 16;
  PINT32 t, e, a = (PINT32)alloca(sz<<2);
  if (NULL == a)
    throw new std::bad_alloc();
  e = a + sz;
  t = a;
  while (t < e)
    *(t++) = std::rand() - ((int)RAND_MAX>>1);
  for (int i = 0; i < sz; i++)
    printf("a[%i] = %i\r\n", i, a[i]);
...
Рейтинг: 0 / 0
virtual methods
    #39654409
a guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rdb_deva guestэто недостаточно явно говорит о том, что malloc не создаёт объекты и что массивы не самозарождаются?Библиотечная функция malloc и в Си никогда не создавала объекты...Её задача - выделение из кучи участка запрошенного размера. Не больше, не меньше.

Массив переменной длины на стеке.Тут нет массива.
...
Рейтинг: 0 / 0
virtual methods
    #39654410
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a guestТут нет массива.И с чего ты это взял?
Тебе же в стандарте явно указано: The expression E1[E2] is identical (by definition) to *((E1)+(E2))
...
Рейтинг: 0 / 0
virtual methods
    #39654412
a guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rdb_deva guestТут нет массива.И с чего ты это взял?С того, что его там нет.
rdb_devТебе же в стандарте явно указано: The expression E1[E2] is identical (by definition) to *((E1)+(E2)) Ну и?
...
Рейтинг: 0 / 0
virtual methods
    #39654413
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a guestНу и?
Если элемент массива эквивалентен типизированному указателю, то функция, возвращающая некую область памяти затребованного размера по нетипизированному указателю уже является неинициализированным массивом объектов элементов массива того типа указателя, через который, в конечном итоге, будет осуществляться доступ к этой области памяти.
...
Рейтинг: 0 / 0
virtual methods
    #39654414
a guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rdb_deva guestНу и?Ну и включи логику и сделай выводы!
Если элемент массива эквивалентен типизированному указателю, то функция, возвращающая некую область памяти затребованного размера по нетипизированному указателю уже является неинициализированным массивом объектов элементов массива того типа указателя, через который, в конечном итоге, будет осуществляться доступ к этой области памяти.Только вот элемент массива не эквивалентен типизированному указателю.
...
Рейтинг: 0 / 0
virtual methods
    #39654419
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a guestТолько вот элемент массива не эквивалентен типизированному указателю.Еще раз: http://eel.is/c++draft/expr.post#expr.sub]The expression E1[E2] is identical (by definition) to *((E1)+(E2))
...
Рейтинг: 0 / 0
virtual methods
    #39654421
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Друзья! Убедительная просьба - обсуждать тему а не собеседника.

Учитесь быть деликатными. Попробуйте. У вас получится.
...
Рейтинг: 0 / 0
virtual methods
    #39654422
a guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rdb_deva guestТолько вот элемент массива не эквивалентен типизированному указателю.Еще раз: http://eel.is/c++draft/expr.post#expr.sub]The expression E1[E2] is identical (by definition) to *((E1)+(E2)) Ещё раз: ну и?
...
Рейтинг: 0 / 0
virtual methods
    #39654424
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a guestЕщё раз: ну и? http://eel.is/c++draft/expr.post#expr.sub] The expression E1[E2] is identical (by definition) to *((E1)+(E2))
...
Рейтинг: 0 / 0
virtual methods
    #39654425
a guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rdb_deva guestЕщё раз: ну и? http://eel.is/c++draft/expr.post#expr.sub] The expression E1[E2] is identical (by definition) to *((E1)+(E2)) Ну и?
...
Рейтинг: 0 / 0
virtual methods
    #39654427
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a guest, 21463609
...
Рейтинг: 0 / 0
virtual methods
    #39654428
Фотография NekZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev, a guest,

У вас deadlock
...
Рейтинг: 0 / 0
virtual methods
    #39654429
a guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rdb_deva guest, 21463609 В том, на чём тебя заело, не написано про эквивалентность элемента массива указателю.
...
Рейтинг: 0 / 0
25 сообщений из 356, страница 14 из 15
Форумы / C++ [игнор отключен] [закрыт для гостей] / virtual methods
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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