
Ruslan
18.05.2018
09:15:40
Пусть даже не компилирующийся

isnullxbh
18.05.2018
09:16:53

Igor
18.05.2018
09:20:32
https://www.youtube.com/watch?v=AeEwxtEOgH0 - свежий толк про оптимизации и UB от John Regehr

Google

isnullxbh
18.05.2018
09:26:50

Ruslan
18.05.2018
09:31:27

isnullxbh
18.05.2018
09:31:38
Не рабит ))

Spoonson
18.05.2018
09:32:30
это не может заработать принципиально

Sheldon
18.05.2018
09:32:39

Ruslan
18.05.2018
09:33:27

Sheldon
18.05.2018
09:33:34

isnullxbh
18.05.2018
09:34:11

Ruslan
18.05.2018
09:34:30

Spoonson
18.05.2018
09:35:32
блин, да какие ошибки? Ясно почему не собирается - потому что тип функции который хочет глютовая функция отличается - она не хочет указатель на метод класса, она хочет сырой указатель на функцию

isnullxbh
18.05.2018
09:35:49
> target()
error: no matching function for call to ‘std::function<void()>::target()’
> target < void() >)
error: invalid use of const_cast with type ‘void (*)()’, which is a pointer or reference to a function type
return const_cast<_Functor*>(__func);

Sheldon
18.05.2018
09:38:03

Google

isnullxbh
18.05.2018
09:38:16

Alexander
18.05.2018
09:41:01

Ruslan
18.05.2018
09:43:02
Так работает

Sheldon
18.05.2018
09:43:22
А что посоветуете?)
glfw, как вариант. Вообще в opencv есть "встроенные" способы отображения, как пишут выше.

isnullxbh
18.05.2018
09:47:04
ну так отобрази через imshow ?
Не получится. Я юзаю библиотеку (nuitrack) которая собрана с определенной версией OpenCV (2.4), и поставляется вместе с so-шками. Это вынуждает меня использовать opencv 2.4. Хэдеры нужные то я забрал с гитхаба, а вот либы... т.к. они не использует большую часть фунционала, то большей части либ нет. В частности, есть libopencv_highgui.so.2.4 d в которой nm показывает наличие символа imshow, но при сборке я получаю undefined reference.

Ruslan
18.05.2018
09:48:01

Alexander
18.05.2018
09:48:12
забыл подлинковать, линкуешь не то, какие-то проблемы с ABI

Friedrich
18.05.2018
09:48:35

Alexander
18.05.2018
09:48:38
символы по разному манглируются и не может найти нужный

Ruslan
18.05.2018
09:49:19

isnullxbh
18.05.2018
09:51:11

Friedrich
18.05.2018
09:53:00

isnullxbh
18.05.2018
09:53:01

Alexander
18.05.2018
09:53:28

Friedrich
18.05.2018
09:53:28
Во всяком случае, у меня сегфолт: https://wandbox.org/permlink/ll6tiaiqxIQS5X1n

Google

Alexander
18.05.2018
09:53:38
но там уже сам гадай, что я могу сказать

isnullxbh
18.05.2018
09:53:53

Spoonson
18.05.2018
09:56:13
http://en.cppreference.com/w/cpp/utility/functional/function/target
A pointer to the stored function if target_type() == typeid(T), otherwise a null pointer.

Ruslan
18.05.2018
09:59:04

Sheldon
18.05.2018
09:59:34

Friedrich
18.05.2018
09:59:37

Spoonson
18.05.2018
09:59:55
он возвращает nullptr

isnullxbh
18.05.2018
10:00:01

Friedrich
18.05.2018
10:00:01
А, он вообще nullptr вернул, мило.

Spoonson
18.05.2018
10:00:05
потому что каст невалидный

Ruslan
18.05.2018
10:00:08

Spoonson
18.05.2018
10:00:28
а что по твоему есть бинд?

Friedrich
18.05.2018
10:00:30
Т.е. без бинда

Ruslan
18.05.2018
10:00:44
Бтнд выше
Бинд*

Friedrich
18.05.2018
10:01:07
Бтнд выше
Ну ты понимаешь же, что оно не будет работать?
Тебе нужно в рантайме скомпилировать код, чтобы получить нужное поведение.
Такой facility у нас пока нету.

Google

Ruslan
18.05.2018
10:02:33

Friedrich
18.05.2018
10:02:56

Ruslan
18.05.2018
10:03:13
Сам механизм передачи сырого указателя валиден

Sheldon
18.05.2018
10:03:27

Friedrich
18.05.2018
10:03:47

Ruslan
18.05.2018
10:04:11

Friedrich
18.05.2018
10:04:18
Через лямбду ли, через мембер-функу, через функциональный объект или ещё как — не принципиально. Потому что никак не получится без глобальных переменных.
Ну или кодегена в рантайме, да.

Admin
ERROR: S client not available

Ruslan
18.05.2018
10:05:02

Friedrich
18.05.2018
10:05:14

Ruslan
18.05.2018
10:05:26
Поинтер
А не функтор
Такой же адрес в памяти

Antony
18.05.2018
10:05:44
Мини новость:
В clang решили последнюю багу, мешающую сборке ядра Linux https://bugs.llvm.org//show_bug.cgi?id=24487

Friedrich
18.05.2018
10:05:50
Поинтер на мембер в контексте вызова отличается тем, что для вызова ему нужно положить дополнительный аргумент.

Ruslan
18.05.2018
10:06:03
Если объекты валиднв то произойдёт обычный вызов

Friedrich
18.05.2018
10:06:04
Если ему не положат аргумент, а он попытается его прочитать — точно получится ерунда.

Alexander
18.05.2018
10:06:28
probably

Google

Friedrich
18.05.2018
10:06:39

Alexander
18.05.2018
10:07:05
но новость определённо хорошая.
можно будет бенчить, какое ядро шустрее работает и так далее

Ruslan
18.05.2018
10:07:26

Friedrich
18.05.2018
10:07:54

Antony
18.05.2018
10:09:17

Igor
18.05.2018
10:09:41

Antony
18.05.2018
10:10:01
там есть ссылка на метабаг, в нем пачка проблем с оптимизацией

Friedrich
18.05.2018
10:10:15

Alexander
18.05.2018
10:10:15

Constantine
18.05.2018
10:11:41

Александр
18.05.2018
10:17:30
Спасибо!)
обычно библиотеки имеют дополнительный аргумент = контекст. проблема в таком случае решается просто. в случае glutDisplayFunc - увы

Friedrich
18.05.2018
10:21:27

Александр
18.05.2018
10:21:43
причем врапается очень красиво и без проблем

Max
18.05.2018
10:23:22
ну или воидстар на худой конец
сишники как понапишут так хоть стой хоть падай

Александр
18.05.2018
10:24:07

Friedrich
18.05.2018
10:24:27

isnullxbh
18.05.2018
10:24:44