|
фрилансер
6466 / 5688 / 1131
Регистрация: 11.10.2019
Сообщений: 15,140
|
||||||
Создаётся объект на стеке, хотя конструкторы удалены03.07.2024, 13:10. Показов 3243. Ответов 18
Метки нет (Все метки)
Вот такой пример.
Вроде бы все конструкторы удалены, а объект всё равно создаётся на стеке, если указать инициализатор {}попробовал на 14 и 17 стандартах - прокатывает (непонятно, почему). А на 11 и 20+ не работает, как и ожидается
0
|
||||||
| 03.07.2024, 13:10 | |
|
Ответы с готовыми решениями:
18
Если внутри функции создается объект с помощью gcnew, он создается один раз или при каждом вызове? Интерфейс, в методе которого создается объект типа IDictionary и возвращается ссылка на этот объект Определить, есть ли в стеке хотя бы два отрицательных элемента |
| 03.07.2024, 13:17 | |
|
Не по теме: Хотя я невнимательно прочел вопрос. Пока удалю.
0
|
|
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||||
| 03.07.2024, 20:08 | ||||
|
Нужно изучать подробности, раньше сталкивался...
В С++ 11 не работает именно из-за дефолтной инициализации переменной члена класа. Добавлено через 5 минут
0
|
||||
|
фрилансер
6466 / 5688 / 1131
Регистрация: 11.10.2019
Сообщений: 15,140
|
|||||
| 03.07.2024, 20:37 [ТС] | |||||
|
А вот это?
0
|
|||||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|||||||
| 03.07.2024, 20:59 | |||||||
|
На cppref я такого не нашел, в стандарте копаться не буду, по этой теме, мне достаточно. Добавлено через 2 минуты
0
|
|||||||
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
||
| 03.07.2024, 21:03 | ||
|
С с++11 до с++14 default member initializers ограничивают (о чем уже написали). А начиная с с++20 ограничение на user-declared конструкторы.
0
|
||
|
фрилансер
6466 / 5688 / 1131
Регистрация: 11.10.2019
Сообщений: 15,140
|
|||
| 03.07.2024, 21:03 [ТС] | |||
|
0
|
|||
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
|
| 03.07.2024, 21:04 | |
|
1
|
|
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 03.07.2024, 21:07 | ||
|
Заприватьте дата мэмбэр и будет вам щастье.
0
|
||
|
фрилансер
6466 / 5688 / 1131
Регистрация: 11.10.2019
Сообщений: 15,140
|
|
| 03.07.2024, 21:10 [ТС] | |
|
Fulcrum_013, а если полей совсем нет, что будем приватить?
![]() Добавлено через 44 секунды zayats80888, я так понимаю, в 14 и 17 комиссия чуток накосячила, а в 20 исправила?
0
|
|
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
||
| 03.07.2024, 21:13 | ||
|
Добавлено через 2 минуты
1
|
||
|
фрилансер
6466 / 5688 / 1131
Регистрация: 11.10.2019
Сообщений: 15,140
|
||
| 03.07.2024, 21:19 [ТС] | ||
|
Из интересу удалил конструктор - всё равно работает с инициализатором {}я конструктор то сделал, чтобы потом не стрельнуло Но нужно понять, что это было
0
|
||
| 03.07.2024, 21:22 | |
|
0
|
|
| 03.07.2024, 21:53 [ТС] | |
|
Не по теме: zayats80888, я задефолтил ) В первом посте удаление - это для демонстрации "проблемы"
0
|
|
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
|
| 03.07.2024, 22:07 | |
|
Алексей1153, кстати ошибка для new-expression это баг. У тебя на gcc она выскакивала?
0
|
|
|
фрилансер
6466 / 5688 / 1131
Регистрация: 11.10.2019
Сообщений: 15,140
|
||||||
| 03.07.2024, 22:19 [ТС] | ||||||
|
zayats80888, да
Добавлено через 9 минут короче, "во многой мудрости много печали" Всё ж таки stateless. А мне оттуда только деструктор нужен
0
|
||||||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|
| 03.07.2024, 22:33 | |
|
Алексей1153, Если полей нет то сайз все равно 1 байт. Так что можно дамми байт приватить.
Или обджект пустого класса если уж чтоб точно 0 для [no_unique_address]. Вы никак пытаетесь сделать что то в духе отучения кастомных пропертей от захвата их в auto декларациях? Можно конструктор кстати заприватить. Ну или запротектить если чилдам надо.
0
|
|
|
фрилансер
6466 / 5688 / 1131
Регистрация: 11.10.2019
Сообщений: 15,140
|
||
| 04.07.2024, 08:32 [ТС] | ||
![]() вопрос был не про то, что я пытаюсь сделать, а почему работает то, что, вроде бы, не должно работать
0
|
||
|
Вездепух
13183 / 6819 / 1821
Регистрация: 18.10.2014
Сообщений: 17,259
|
|||
| 09.07.2024, 23:33 | |||
Сообщение было отмечено Алексей1153 как решение
РешениеВсе зависит от того, является ли ваш класс агрегатом. Если это агрегат, то к нему применима агрегатная инициализация. Агрегатная инициализация - это, как уже тысячу раз тут вдылдонивали, механизм инициализации, который никакого отношения ни к какими конструкторам не имеет и никаких конструкторов не использует. Поэтому, если класс - агрегат, то что за конструкторы вы там "удалили" ни на что не влияет. В С++11 этот класс не является агрегатом из-за инициализатора = 42. В С++14 и С++17 этот класс является агрегатом. Однако начиная с С++20 такой класс опять перестает быть агрегатом (https://www.open-std.org/jtc1/... 1008r1.pdf) уже из-за удаленного конструктора.
1
|
|||
| 09.07.2024, 23:33 | |
|
Помогаю со студенческими работами здесь
19
Конструкторы и указатели на объект класса Функция: определить, есть ли в стеке хотя бы один элемент, лежащий в заданном диапазоне
Не создается объект Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|