
L1nk
05.07.2018
02:40:53

Ilia
05.07.2018
05:35:23

Alexander Alprog
05.07.2018
05:36:15
ну это моя предметная область
если вдруг, кому интересно (минутка наглого самопиара)

Google

Ilia
05.07.2018
05:38:35
Ну ок, но С++ тут при чем?
Не ну можно конечно по это побазарить ( не я только)

Alexander Alprog
05.07.2018
05:39:21
Ну как причём? Это ж как замена С++. С кем ещё базарить на тему всяких D, go и rust?
Не с C#-программистами же. А комьюнити самих языков маленькие. И там фанатики одни :)

Ilia
05.07.2018
05:59:25
Фанатики это плохо
Да я не против побазарить, описание языка где?
Без него как-то...

Alexander Alprog
05.07.2018
06:00:23
https://github.com/BSVino/JaiPrimer/blob/master/JaiPrimer.md
нормальных спеков нет, только такое + стримы видео, но там долго
вот сборник всех ресурсов: https://inductive.no/jai/

Constantine
05.07.2018
07:19:54
хм... а в бусте есть smartptr, который лежит под капотом std::function? можно его в стандарт притащить?

Antony
05.07.2018
07:50:11

Constantine
05.07.2018
08:07:58
А для чего?
Например, для type erasure с сохранением копирования, как это нужно в std::function :)

Antony
05.07.2018
08:09:06
std::any?

Google

Anton
05.07.2018
08:09:44
А кому-нибудь приходилось ускорять линковку либы? У нас один из проектов под MSVS линкуется 5минут без ltcg. Есть ли тулы, которые подсвечивают проблемы?

Antony
05.07.2018
08:09:45
Самый продвинутый способ делать type erasure - это Boost.TypeErasure

Constantine
05.07.2018
08:10:39
std::any?
тут в любом случае удивительное дело - все известные мне реализации std::function используют этот указатель, но наружу его не показывают

Antony
05.07.2018
08:11:53

Constantine
05.07.2018
08:12:46

Antony
05.07.2018
08:16:03
ну если нужно с SSO, то это std::function
А ели нужна часть std::function, которая на куче может хранить, тогда ближайший аналог Boost.TypeErasure

Constantine
05.07.2018
08:17:10
Мне здесь именно что непонятно, почему то, что лежит под std::function, не является законченным типом с точностью до шаблонизации
Вроде это полноценная версия unique_ptr для CC

Antony
05.07.2018
08:19:19
Но зачем? Если нужно хранить функции - то std::function
Если нужно что-то большее - то оно не умеет :(

Constantine
05.07.2018
08:22:06
Оно же там в потрохах не функцию хранит, оно (если я ничего не напутал) хранит потомок интерфейса с аллокатором вместе
Т.е. если цепочку раскрутить, получается какой-то модифицированный unique_ptr с дополнительным хранением оригинального аллокатора для копирования и small object optimization
(и вроде как это основной способ хранить полиморфное значение CC-объекта)


Antony
05.07.2018
08:27:42
Аллокатор он начиная с C++17 хранить не должен - там возникли какие-то суровые проблемы у разработчиков стандартной библиотеки с хранением type erased аллокаторов
Остаётся только std::unique_ptr<detail::func_base<YourType>>
func_base в простом случае реализован как-то наподобие https://github.com/boostorg/any/blob/develop/include/boost/any.hpp#L152-L202, только ещё с operator()
А вот в более сложном случае, он реализован крайне неприглядно, для того чтобы избегать RTTI https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/any#L551
^ Такое людям страшно показывать
Но из ссылки выше видно почему наружу не показывают - там два манагера, один SSO, другой для динамики, и управлять ими надо через команды
Поэтому это оборачивают в приятный интерфейс наподобие std::any
Ура! Редакторы заапрувили пост о C++20 https://habr.com/company/yandex/blog/413719/

Pika
05.07.2018
08:47:12

Spoonson
05.07.2018
08:47:31

Antony
05.07.2018
08:58:28

Constantine
05.07.2018
08:58:58

Google

Antony
05.07.2018
09:18:54

Constantine
05.07.2018
09:19:22

Antony
05.07.2018
09:21:43
Ага

Constantine
05.07.2018
09:22:25
пойду выпью)

Antony
05.07.2018
09:23:05
модули будут?
вообще удивительно, что это вопрос ещё никто не задал в посте :)
Традиции нарушаются

Constantine
05.07.2018
09:23:09
ладно, вроде, за следующие лет 5 расчетное время компиляции не должно превысить полтора часа

A.D.
05.07.2018
09:23:10

Constantine
05.07.2018
09:23:46
технически если бы требование constexpr наследовалось, можно было бы в vtbl писать результат вместо вызова функции

Ilia
05.07.2018
09:24:39

Azoyan
05.07.2018
09:25:17
Мне не нравится спецсимвол в ключевом слове

A.D.
05.07.2018
09:25:27

Ilia
05.07.2018
09:26:09

Constantine
05.07.2018
09:26:16

A.D.
05.07.2018
09:27:13

Аттрибутивно-ассоциативный ряд
05.07.2018
09:27:25

Ilia
05.07.2018
09:27:27

A.D.
05.07.2018
09:28:31

Google

Antony
05.07.2018
09:28:44

A.D.
05.07.2018
09:28:54

Ilia
05.07.2018
09:29:05

Antony
05.07.2018
09:30:09

Admin
ERROR: S client not available

Denis
05.07.2018
09:30:19
Нужен хелп. Забыл ресурс, на котором указаны отсортированные +/- языков программирования.
Кто знает?

Ilia
05.07.2018
09:31:21
там по ссылке же пример есть: мол, разные суффиксы
Ну, тогда я бы лучше string_ref назвал.
Но проблема в том, что, как я подозреваю, string_view -- это НЕ ТОЛЬКО ССЫЛКА, но ещё и ссылка на определённые части строки.
Т.е. разные суффиксы вполне оправданы.
fixed
А что FIXED-то?
Там H был?

Antony
05.07.2018
09:32:22

Anatoly
05.07.2018
09:32:52

Ilia
05.07.2018
09:33:10

Aleksandr
05.07.2018
09:33:35
https://godbolt.org/g/THtZVj
всем привет! почему не компилируется вот это? тернарный оператор же вычисляет второй и третий операнды только в зависимости от первого.

Ilia
05.07.2018
09:33:37

Antony
05.07.2018
09:34:17

Anatoly
05.07.2018
09:34:47

Azoyan
05.07.2018
09:35:35

Aleksandr
05.07.2018
09:36:23

Anatoly
05.07.2018
09:36:34

Google

Ilia
05.07.2018
09:36:37
блин опередил

Aleksandr
05.07.2018
09:36:49

Anatoly
05.07.2018
09:37:04

Denis
05.07.2018
09:37:13

Azoyan
05.07.2018
09:37:45

Aleksandr
05.07.2018
09:38:12
нет, он вычислят только если надо. вопрос - зачем инстанцировать, если не надо вычислять)

Anatoly
05.07.2018
09:38:35

Ilia
05.07.2018
09:38:45

Azoyan
05.07.2018
09:39:05

Anatoly
05.07.2018
09:39:14

Ilia
05.07.2018
09:39:16

Antony
05.07.2018
09:39:40

Ilia
05.07.2018
09:40:29

Aleksandr
05.07.2018
09:40:52
да, имеет смысл, спасибо