
Alexey
10.10.2018
13:31:01
но она не требует прямой поддержки компилятором

Igor
10.10.2018
13:31:09
Зачем вы кормите тролля?

Побитый
10.10.2018
13:31:11

Constantine
10.10.2018
13:31:28

Google

Igor
10.10.2018
13:31:53

Alexey
10.10.2018
13:31:53
рефлексия становится действительно полезной только тогда, когда не надо писать кучу boilerplate-кода на каждый чих

Igor
10.10.2018
13:32:15

Alexey
10.10.2018
13:32:25
как частный случай

Побитый
10.10.2018
13:32:28

Constantine
10.10.2018
13:33:22

Alexey
10.10.2018
13:34:39
от рефлексии я ожидаю систему выражения, отличную от работы с объектами языка
constexpr в контексте рефлексии выглядит притягиванием за уши
потому что разнородные сущности начинают выглядеть одинаково

Constantine
10.10.2018
13:35:51

Alexey
10.10.2018
13:36:13
я не против рефлексии в С++ в компайле, мне видятся уродливыми конструкции, с помощью которой они вводятся
ну например одно из классических применений - сериализация в текстовое представление (JSON, YAML, XML и т.п.)
когда нужно сопоставлять сущности их именам и наоборот

Google

Constantine
10.10.2018
13:37:49

Alexey
10.10.2018
13:38:33
или замена специализаций с помощью enable_if

Побитый
10.10.2018
13:38:55

Constantine
10.10.2018
13:39:24

Alexey
10.10.2018
13:40:38
метаинформация без лишнего кода и жутких выражений, без build-in приблуд специфичных для компилятора типа "тут у нас плоская структура без наследования и виртуальных методов"
вот как нужно написать constexpr if, чтобы обработать примитивные типы?
либо длинной портянкой, либо с большим количеством разных скобочек и двоеточий
вместо простых и лаконичных конструкций
когда структуры будут просты и лаконичны и хотя бы отдалённо напоминать что-то вида typeof(T).IsEnum, тогда С++ will become great again

Побитый
10.10.2018
13:43:37

Igor
10.10.2018
13:45:08
Вчера выложили неплохой толк Louis Dionne с CppCon про compile-time programming в будущих стандартах. В том числе краткий обзор пропозалов по рефлекшену - https://youtu.be/CRDNPwXDVp0?t=2283

Constantine
10.10.2018
13:45:26

Alexey
10.10.2018
13:46:35
когда эти радости наконец будут доступны для использования, в том числе на embedded (не тот, который linux-based, а тот, который bare metal)?

ed
10.10.2018
13:46:55

Побитый
10.10.2018
13:47:03

Alex
10.10.2018
13:47:37

ed
10.10.2018
13:47:45

Constantine
10.10.2018
13:47:56

Побитый
10.10.2018
13:48:41

Google

Constantine
10.10.2018
13:48:42
вы не можете определить vector::is_single_element но можете is_single_element(vector)

Побитый
10.10.2018
13:49:04

Constantine
10.10.2018
13:49:31

Alexey
10.10.2018
13:49:59
а что, компайл-тайм аллокаторы уже завезли?

Побитый
10.10.2018
13:50:14

Constantine
10.10.2018
13:50:25
Дак хорошо же?
внешние предикаты реализуются по месту расширения, классы реализуются по месту класса

ed
10.10.2018
13:51:24

Alexey
10.10.2018
13:55:37

Constantine
10.10.2018
13:55:43

Побитый
10.10.2018
13:56:19

Constantine
10.10.2018
13:57:02

Alexey
10.10.2018
13:57:36
ой, а можно UFCS не только для операторов? ?

Constantine
10.10.2018
13:58:01
т.е. в идеале читаемости (но нельзя по причине +inf compilation time) std::type::is_enum_v

Alexey
10.10.2018
13:58:49

Побитый
10.10.2018
13:59:03

Constantine
10.10.2018
13:59:27

Alexey
10.10.2018
14:00:13

Constantine
10.10.2018
14:01:49

Alexey
10.10.2018
14:02:24
-s на тебя

Google

Constantine
10.10.2018
14:05:22
не знаю про -s, но плюсовый компайлер обязан вывалить все инстанцированные шаблоны в объектник

Alexey
10.10.2018
14:06:20
под объектником ты понимаешь .o/.a/.obj или .so/.dll/.exe/.elf?

Constantine
10.10.2018
14:07:11
второе я называю бинарником)
объектник именно то, что передается от компилятора линковщику

Alexey
10.10.2018
14:08:08
ок
отогда да

Constantine
10.10.2018
14:08:17
и вот на этом этапе вы подрубается SSD/RAM потому что там идут громадные потоки данных

Alexander
10.10.2018
14:08:55

Constantine
10.10.2018
14:09:42
в любом случае как у меня горело от того, что замена std::function на самописную простейшую реализацию уменьшает объем на 15%!

Alexey
10.10.2018
14:11:14
ты уверен, что тебе этот объём критичен?

Alexander
10.10.2018
14:11:29

Constantine
10.10.2018
14:11:38
я уверен, что 10ГБ с определенным сжатием... не мгновенно линкуется

Alexander
10.10.2018
14:11:54

Constantine
10.10.2018
14:12:04

Alexey
10.10.2018
14:12:07
а ещё когда link-time optimization гоняется...

Alexander
10.10.2018
14:12:16

Alexey
10.10.2018
14:12:20
не обязательно

Alexander
10.10.2018
14:12:37
ну понятно, что от вычитки ты сильно не избавишься (только если не tmpfs)

Alexey
10.10.2018
14:12:56
внутри объектников тоже лукап-таблицы есть, и не обязательно что по всем объектникам идти придётся

Google

Constantine
10.10.2018
14:13:24
попытки лениво почитать фрагменты с диска обернется ужасными просадками
(экспериментировал с расчетом миллиардов позиций в 2048 :) )

Alexey
10.10.2018
14:14:23
писать в объектники намного больше, чем надо ?
а 10 гигов объектников на С++ - это open office какой-нибудь?

Constantine
10.10.2018
14:15:33
Там что-то вроде 10МБ на одну формочку

Alexey
10.10.2018
14:16:15
маньяк
а у тебя Celeron 666 какой-нибудь и веник на 40 гигов IDE

Constantine
10.10.2018
14:17:24
на машинках не экономят, это уж поверьте
самоубийц мало
понятно, что там на SSD всё

Pavel
10.10.2018
14:18:19
Скорее всего

Constantine
10.10.2018
14:18:47
Детали не знаю, знаю только, что чуть быстрее висящего рядом HDD для мусора работает :)
уверен, что все C++ линкеры делают ровно то же самое