Constantine
примерно как между unique_ptr и shared_ptr
Constantine
или между && и &
Constantine
вызываемый 0 раз это nullptr_t он уже есть
Constantine
не знаю куда
Constantine
вот ты тред запускаешь
Constantine
и у тебя короче лежит картинка
Constantine
которую этот тред будет обрабатывать
Constantine
спасибо c++ ты будешь ее копировать
Constantine
или оборачивать в shared_ptr
Constantine
как
Constantine
тред детачится
Constantine
std::thread требует CC объект вообще
Constantine
так что shared_ptr
Constantine
вместо once_callable_function
Constantine
которой в явном виде разрешено биндать MC объекты
Cuno
было бы неплохо, на самом деле
Anatoliy
а обёртка над функтором чем плоха?
Constantine
еще раз: как обертка различает сигнатуру вызова?
Constantine
давайте правда что ли
Constantine
вот у нас есть функция void f(std::unique_ptr o)
Constantine
мы такие пишем bind для этой функции
Anatoliy
мы такие пишем bind для этой функции
всю жизнь без bind обходился
Constantine
всю жизнь без bind обходился
ну то есть гуя у вас вообще нет?)
Constantine
и передачи событий нет?)
Constantine
Просто более сложные примеры одноразовых конструкций займут пару дней
Constantine
Например, когда дерево раскладки гуя переводится в реактивную модель расчета этой раскладки
Александр
Константин хочет ref-квалификаторы в лямбды? всё правильно хочет. какого хрена структуры-коллбэки у нас умеют в это, а лямбды - нет?
Александр
даже нет смысла объяснять зачем. можно отправить непонимающих изучать, зачем вообще нужны ref-квалификаторы
Ivan
это круто) еще надо определить функции которые вызываются два раза и принимают тип int от 7 до 17, и всё это проверяется на этапе компиляции
Constantine
всю жизнь без bind обходился
тут любителям clang и стандарта, я все еще не созрел https://godbolt.org/g/FifQ9Q
Ivan
оО
Constantine
тут любителям clang и стандарта, я все еще не созрел https://godbolt.org/g/FifQ9Q
вот заставьте этот пример скомпилировать clang как это делается msvc (т.е. по-человечески а не по стандарту)
Constantine
two phase name lookup в этом примере приводит к шаблонному sequence inconsistency, т.е. шаблонный код принципиально делает невозможное для не-шаблонного кода при последовательном чтении
Ivan
if constexpr тут поможет тебе😊
а как он мне поможет? Мне нужно чтобы код не компилировался, если аргументы неверные
Constantine
функция is_null не может быть вызвана неправильно извне шаблонного кода без вмешательства в блок 19..28
Constantine
ну если вы мне приведете пример в std когда функция вызывается не более двух раз
Constantine
я даже подумаю
Constantine
вызывается не более одного раза - просто на вскидку - std::thread, std::call_once
Constantine
сейчас еще повспоминаю
Constantine
а теперь возвращаемся к моему начальному посту, добавляем ко всем std::container -> std::pmr::container и всё работает 😊
polymorphic_allocator does not propagate on container copy assignment, move assignment, or swap. As a result, move assignment of a polymorphic_allocator-using container can throw, and swapping two polymorphic_allocator-using containers whose allocators do not compare equal results in undefined behavior.
Constantine
Alexander "SonnySlave"
>swapping two polymorphic_allocator-using containers whose allocators do not compare equal results in undefined behavior lol
Alexander "SonnySlave"
здесь всё прекрасно
Constantine
https://www.youtube.com/watch?v=ND-TuW0KIgg
Александр
так-так..
Constantine
я просто оставлю это здесь
Constantine
ну или сделайте мне стикер с гитлером и BUNCH OF TROLLS
Александр
так, ну на копию это вроде никак не влияет. на доступ из длл - тоже, ибо операции выделения памяти будут использоваться "виртуально"
Александр
отправляю. иди!
Olesya
нужны мастера opencv. кто-нить знает, как Mat, где data хранится в виде массива uchar* перевести во флоатовский массив?
Olesya
но это же по одной точке, не?
Alexander "SonnySlave"
а тебе как надо?
Berkus
Ей видимо надо sparse matrix кастануть в хуйню
Olesya
а как нить через memcpy нельзя?
Alexander "SonnySlave"
а как нить через memcpy нельзя?
так тебе скопировать надо или что? 😊
Evgenii
а как нить через memcpy нельзя?
а как ты инт в флоат переведешь
Evgenii
даже один
Olesya
да, скопировать во флоатовский массив.
Alexander "SonnySlave"
да, скопировать во флоатовский массив.
получить data указатель, получить размер данных, скопировать?
Alexander "SonnySlave"
unsigned char *input = (unsigned char*)(img.data); int size = img.total() * img.elemSize(); std::copy(input, input + size, dst)
Alexander "SonnySlave"
но я не могу вспомнить, можем ли мы так делать
Olesya
пыталась в качестве src указать Mat.ptr<float>(0) - сегфолтит, хотя матрица не пустая. пыталась просто указать Mat.data - значения внутри массива некорректные получаются. но это я, правда, через memcpy делала, попробую через copy
Alexander "SonnySlave"
под капотом std::copy всё равно выльется в какой-нибудь memcpy 😊
Olesya
memcpy(array, Mat.ptr<float>(0), Mat.cols * Mat.rows)
Olesya
memcpy(array, Mat.data, Mat.cols * Mat.rows)
Olesya
memcpy(array, reinterpret_cast<float*>(Mat.data), Mat.cols * Mat.rows)
Alexander "SonnySlave"
memcpy(array, Mat.data, Mat.cols * Mat.rows)
размер элемента какой?
Olesya
память у array выделена, это я проверила.
Olesya
в первом случае сегфолтил, во вторых двух криво копировал
Stanislav
э
Olesya
правда, data всё равно uchar* если смотреть в отладчике
Alexander "SonnySlave"
Alexander "SonnySlave"
а вот к чему кастанешь, тем и будет уже потом
Olesya
а, ясно, я поняла проблему