
Крис
07.08.2018
22:23:03

Alex Фэils?︙
07.08.2018
22:26:29

Constantine
07.08.2018
22:27:13

Google

Alex Фэils?︙
07.08.2018
22:29:09
обычные шаблоны *shrug*

Constantine
07.08.2018
22:29:31
когда я вижу template <typename Derived> во мне что-то рыдает

Alex Фэils?︙
07.08.2018
22:29:40
CRTP же обычный

Constantine
07.08.2018
22:29:59
костыль

Alex Фэils?︙
07.08.2018
22:30:22
почему костыль? древняя идиома языка

Constantine
07.08.2018
22:30:34
древний костыль, да

Alex Фэils?︙
07.08.2018
22:30:50
а почему костыль

Constantine
07.08.2018
22:32:56
потому что выражает непонятно что?
вы хотите непоследовательно описывать сущности?

Alex Фэils?︙
07.08.2018
22:33:47
ну, следуя этой логике, можно много чего из с++ назвать костылями

Constantine
07.08.2018
22:33:58
так в С++ безумно много костылей)

Stanislav
07.08.2018
22:40:17
как и в х86

Google

Alex Фэils?︙
07.08.2018
22:41:06
ну, все-таки у понятия "костыль" другое значение

Constantine
07.08.2018
22:41:10
из за обратной совместимости
поэтому одна моя мечта - чтобы в С++ уже ввели прямую инструкцию, выбрасывающую все вопросы обратной совместимости

Alex Фэils?︙
07.08.2018
22:41:34
я бы под "выражает непонятно что" использовал термин "хуита какая-то"

Constantine
07.08.2018
22:42:04
и после этого чертов оператор "&operator==" таки выполнял unqualified name lookup

Alex Фэils?︙
07.08.2018
22:42:10

Constantine
07.08.2018
22:42:51

Stanislav
07.08.2018
22:44:00

Constantine
07.08.2018
22:44:33

Stanislav
07.08.2018
22:44:33
но так чтобы это компилилось хотябы с сями

Alex Фэils?︙
07.08.2018
22:45:13

Constantine
07.08.2018
22:45:20
чсх CRTP выглядит как вторая часть, просто логическая ошибка

Alex Фэils?︙
07.08.2018
22:46:50
а вторая часть называется "оверинжиниринг" или "переусложнение"
но так-то да, я уважаю твою категорию

Constantine
07.08.2018
22:47:24
правильная логика может приводить к более сложному году, т.е. речь именно о том, что логика не угадана

Stanislav
07.08.2018
22:48:44

Constantine
07.08.2018
22:48:46
учитывая то, что написано на википедии про CRPT в ATL мне кажется, что их заломало делать декомпозицию сущностей для окна

Alex Фэils?︙
07.08.2018
22:49:10
а, вот чем тебе не нравится ATL; а я думал, ты про CRTP в целом
ну, возможно, да, ты прав

Google

Constantine
07.08.2018
22:49:33
я не знаю примеров, в которых использование CRTP само по себе выглядит правильным
скажем так, у меня не было желания так написать никогда

Alex Фэils?︙
07.08.2018
22:50:54
дык это подвид статического полиморфизма, тащемта во многих случаях можно юзнуть его вместо вирт. функций,
но я слишком грубо говорю, детали всегда в дьяволе

Constantine
07.08.2018
22:51:29
но модель статического полиморфизма без CRPT просто сильнее модели динамического
в том смысле, что она напрямую имеет аналог тех же интерфейсов как концептов, да еще и с невыражаемыми в случае виртуальных функций примочками
таких, как tag dispatching

Alex Фэils?︙
07.08.2018
22:53:03
ну, да, есть средства выразительнее так-то

Constantine
07.08.2018
22:54:03
я понимаю, что EventHandler до безумия связан с InnerState настолько, что эти структуры параллельно наследуются, но не уверен, что их нужно пихать в один объект

Alex Фэils?︙
07.08.2018
23:02:25
а, это же древняя попоболь, когда обработчики рядом валяются, да
и в мфц были карты, и в голом винапи тащемта вндпроц была крупным свичом обычно

Constantine
07.08.2018
23:08:52
там что-то вроде того, что итоговое окно это комбинация InnerState, EventDispatcher (преобразование из общих сигналов в сигналы InnerState) и Renderer (чистая функция над InnerState), причем из InnerState еще что-то торчит в сторону владельца

Alex Фэils?︙
07.08.2018
23:09:54
Специфический mvc получается, и весь на статическом полиморфизме...??

Constantine
07.08.2018
23:11:16
Здесь InnerState это, видимо, вся связка M+C
Причем в динамическом полиморфизме здесь очень серьезные неприятности из-за того, что InnerState вообще говоря для выбора font-face и font-size просто разный

Andrey
08.08.2018
02:53:53
Andrey есть ли примеры с корутинами у вас? мне для поиграться
Могу скромно предложить посмотреть видео (полистать презентации) моих выступлений на эту тему:
https://www.youtube.com/watch?v=2tWNm_fDxX0
https://www.youtube.com/watch?v=Je21p0gUiPA
и/или почитать документацию здесь https://github.com/lewissbaker/cppcoro
Примеров использования Coroutine TS в реальном серьезном opensource коде я не знаю, самому было бы интересно.

Dmitry
08.08.2018
06:25:20
И какова вообще альтернатива в плане статического полиморфизма для конструкции типа ConcreteAlgoritm : GenericAlgorithm<ConcreteAlgoritm>?

olologin
08.08.2018
07:00:17
Господа, а есть ли какой-то профит в поиске функции через GetProcAddress, заместо обычной динамической линковке при запуске?
Я просто хочу достать указатель на функцию в системной библиотеке, не знаю какой способ выбрать

Google

yuri
08.08.2018
07:07:21

Andrey
08.08.2018
07:08:24

olologin
08.08.2018
07:08:54
Хмм, а версионинг на это всё никак не влияет?
Т.е если я прилинкуюсь динамически к какому-то символу из системной либы во время линковки
И если я буду запрашивать этот символ через GPA
разницы нет никакой?
Т.е может ли быть такое что я на десятой винде соберу свой экзешник который будет прилинкован к слишком новому символу

Andrey
08.08.2018
07:10:51

olologin
08.08.2018
07:10:54
и на какой-нибудь семёрке длл-ка будет с таким именем, но более старой версии, и всё упадёт
Понял, спасибо

Andrey
08.08.2018
07:11:35
А если руками, то как я уже сказал - у тебя есть шанс

olologin
08.08.2018
07:11:52
ну да, упадёт в смысле что не запустится

Andrey
08.08.2018
07:12:28

Aidar
08.08.2018
07:17:04
Ктото курил executors? Там есть стандартные штуки чтоб допустим скомпилить нужные части в spirv? Я не представляю как оно может выглядеть
Сейчас есть computecpp который шланг в двух режимах, нормальном и генерирующем spirv

Matwey
08.08.2018
07:20:55

Aidar
08.08.2018
07:21:24
Этож под капотом
Сейчас computecpp так и делает

Google

Matwey
08.08.2018
07:22:32
Этож под капотом
Под каким капотом? Если все-равно руками делать, то почему бы не использовать два компилятора?

Aidar
08.08.2018
07:22:43
Гугли parallel stl на sycl

Andrey
08.08.2018
07:39:12

Aidar
08.08.2018
07:40:20

Andrey
08.08.2018
08:20:47
угу, как и gc когдато
С одной стороны я полностью разделяю Ваш скепсис по отношению к черезчур амбициозным долгостроям, которые в итоге ложатся непомерным грузом на вендоров, никогда не реализуются и полностью бесполезны для пользователей языка. С другой стороны мне представляется, что задача выделения общего интерфейса между обычным thread pool'ом, net::io_context-ом, gui events loop-ом , fibers scheduler'ом и очередью gpu-задач в смысле OpenCL как минимум очень важна и полезна, а как максимум необходима для дальнейшего консистентного развития stdlib.
Ожидать при этом, что Executors дадут какой-то новый удобный способ работать c gpu-computing в С++, по-моему, практически бесполезно.

Ilia
08.08.2018
08:25:53

olologin
08.08.2018
08:27:32
А если я юзну либ файл для импорта на более новом СДК

Ilia
08.08.2018
08:27:42

olologin
08.08.2018
08:27:46
Запустится ли такая программа на старой винде?

Ilia
08.08.2018
08:28:11

olologin
08.08.2018
08:28:38
А с обычной динамической линковкой?

Ilia
08.08.2018
08:29:52
А с обычной динамической линковкой?
Что значит обычная динамическая линковка?
Есть три, связывание через библиотеку импорта, связывание через .def файл и динамическая загрузка библиотеки и GetProcAddress.