|
techpriest
634 / 213 / 57
Регистрация: 27.02.2014
Сообщений: 1,180
|
|||||||||||
Еще немного про конструкторы обобщенных классов14.01.2017, 08:43. Показов 2319. Ответов 32
Метки конструкторы (Все метки)
Пытаюсь проинициализировать объект обобщенного класса, параметром которого может выступать ссылка.
Если убрать
Как строить такие объекты?
0
|
|||||||||||
| 14.01.2017, 08:43 | |
|
Ответы с готовыми решениями:
32
Конструкторы классов Конструкторы классов Еще немного по теории |
|
Любитель чаепитий
|
|||
| 14.01.2017, 12:05 | |||
|
0
|
|||
|
techpriest
634 / 213 / 57
Регистрация: 27.02.2014
Сообщений: 1,180
|
||||||
| 14.01.2017, 12:13 [ТС] | ||||||
|
Неплохо.
Добавлено через 2 минуты GbaLog-, я микроконтроллерщик. Компилятор gcc-avr, например вообще не поддерживает исключения. Да и для других ядер исключения местами тяжеловесны. И потом, я вижу преимущества у этого метода. Например в том, что исключения точно не вываляться за пределы safe ветки. Так или иначе, я попробую. Никто от этого не умрёт.
0
|
||||||
|
Любитель чаепитий
|
||||||
| 14.01.2017, 12:14 | ||||||
|
Или можно так:
0
|
||||||
|
techpriest
634 / 213 / 57
Регистрация: 27.02.2014
Сообщений: 1,180
|
||||||
| 14.01.2017, 13:15 [ТС] | ||||||
|
Вообще, any это плохо, наверное... Он наверняка какие-то преобразования внутри делает
Добавлено через 51 минуту Не, не, не. Там будет union возвращаемого типа и типа error. И переменная, указывающая, кем оно является. Впринципе оно уже работает. В конечном итоге остановился на таком варианте (Многословно, но поскольку я не очень хорошо в шаблоны, думаю, я с этим совладаю). Кроме того, мне нужно будет вызывать какие-то деструкторы для ссылочных типов. А тут я их смогу переопределять свободно:
0
|
||||||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,822
|
||||||||
| 14.01.2017, 15:53 | ||||||||
|
Добавлено через 9 минут Например:
0
|
||||||||
|
techpriest
634 / 213 / 57
Регистрация: 27.02.2014
Сообщений: 1,180
|
|
| 14.01.2017, 22:48 [ТС] | |
|
Если эта висячая ссылка получается и при попытке обычного return, то собственно так и должно быть. То есть это не мой UB а стандартный. Если обычный возврат ссылки приводит к UB, то и обреззалтченный тоже должен. Но, это все конечно требует анализа.
Добавлено через 2 минуты А UT я перепишу на ремув референс, наверное...
0
|
|
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,822
|
||||||||||||||
| 15.01.2017, 01:19 | ||||||||||||||
|
Добавлено через 10 минут Вот этот код абсолютно легальный, т.к. здесь продлевается время жизни временного объекта:
r и корректно работать через нее с объектом, а во втором случае объект уже будет мертв.12.2/5
0
|
||||||||||||||
|
techpriest
634 / 213 / 57
Регистрация: 27.02.2014
Сообщений: 1,180
|
|
| 15.01.2017, 09:35 [ТС] | |
|
Хм... Я понял.
0
|
|
|
techpriest
634 / 213 / 57
Регистрация: 27.02.2014
Сообщений: 1,180
|
|||||||||||
| 22.01.2017, 18:25 [ТС] | |||||||||||
|
DrOffset, но ведь при возвращении из функции, объект на стеке, на который ссылается ссылка, все равно будет уничтожен, верно? то есть после return жизнь объекта не продлевается. А значит, разницы в поведении не будет, если мой объект кнструируется только при return. Верно?
0
|
|||||||||||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,822
|
||||
| 22.01.2017, 18:58 | ||||
|
Но я вообще-то говорил про другой случай. И уже дал это понять фразой выше PS. Почти везде в твоих кодах ты совершенно неуместно применяешь std::move. Наверное надо с этим что-то сделать?
0
|
||||
|
techpriest
634 / 213 / 57
Регистрация: 27.02.2014
Сообщений: 1,180
|
||||||||||||
| 23.01.2017, 12:32 [ТС] | ||||||||||||
|
ОК. Я понял, почему и когда возникает UB.
Объекты данного класса никогда не будут конструироваться явно.
move - это от экспериментов. Я не очень хорошо понимаю, в каких случаях стоит использовать move, а в каких можно положиться на NRVO... А в каких вообще не нужно этого всего делать. Это тоже предмет текущего исследования...
0
|
||||||||||||
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
||
| 24.01.2017, 19:06 | ||
|
Mirmik,
0
|
||
|
techpriest
634 / 213 / 57
Регистрация: 27.02.2014
Сообщений: 1,180
|
|
| 25.01.2017, 10:39 [ТС] | |
|
Благодарю. Посмотрю обязательно.
0
|
|
| 25.01.2017, 10:39 | |
|
Наследование классов и конструкторы Классы, конструкторы, деструкторы, методы классов
Про линковку библиотек и про архитектуру иерархии классов Как создавать конструкторы, что бы использовать переменные из любых классов? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
[golang] Worker Pool
alhaos 09.06.2026
Worker Pool
Worker Pool — паттерн конкурентной обработки задач в Go.
Суть: фиксированное количество горутин-воркеров читают задачи из общего канала
и пишут результаты в общий канал результатов. . . .
|
[golang] Pipeline
alhaos 08.06.2026
Pipeline
Pipeline — паттерн конкурентной обработки данных в Go.
Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
|
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь
lIs4oanZS9Y
|
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу.
До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
|
|
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений.
. . .
|
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения
Продолжаю серию постов о дискретно-событийной модели рабочего. . .
|
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы
Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
|
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция
Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
|