170 похожих чатов

Привет. А можете напомнить концептуально, почему std::function не умеет в

move-only функторы?

20 ответов

5 просмотров

А зачем оно?

просто потому, что std::function задумывался как интерфейс копируемого функционального объекта. В C++23 завезут move-only версию.

Vanya-Khodor Автор вопроса
Ilya Zviagin
А зачем оно?

Зачем уметь в такое? А зачем std::move_only_function придумали?

так реализовано, концептуально ограничений нет сделать для move only, и даже есть реализации

Традиционно в STL все функторы копируются, видимо, чтобы не хранить их по ссылке, поскольку в момент выполнения алгоритма сылка на (например временный) объект функтора может протухнуть. Поэтому и function смоделирован так же

Ilya Zviagin
Ну, зачем?

Потом, ты же можешь и обычное копирование сделать перемещающим, никто не мешает.

Ilya Zviagin
Потом, ты же можешь и обычное копирование сделать ...

packaged_task, например, по понятным причинам объект не копируемый. Это не позволяет тебе запихнуть его в function. не знаю как у остальных, а у меня на практике это основная причина головной боли.

Ilya Zviagin
Потом, ты же можешь и обычное копирование сделать ...

копирующий конструктор const ссылку принимает

Ilya Zviagin
Нет

Так человек ожидал что щас скопируется, а у него данные пропали и программа падать стала

Ilya Zviagin
А зачем его в function?

Ну вот хочешь ты написать функцию InvokeOnMainThreadAsync. Как будешь хранить задачи?

'Егор 'Зорин
Так человек ожидал что щас скопируется, а у него д...

Блин, что он там не ожидал, если сам этот класс пишет?

Ilya Zviagin
Нет

Да. Очень странно будет после копирования потерять какой-нибудь юник

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
96
читать файл максимально быстро? странный вопрос))
zamtmn
53
How to create an OS in C? what to study?
Linus
18
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
Вопрос вроде правильно, но что надо сделать, чтоб текст был виден нормально ? ghci> TE.decodeUtf8 $ TE.encodeUtf8 "test - проба" "test - \1087\1088\1086\1073\1072"
Fedor
7
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Кто может подсказать? Я преобрпзовал изображение в бинарное(у меня установлен трекбар который при установленном значении меняет пиксели на белый если меньше и чёрный если боль...
Константин VS
6
Карта сайта