
Aidar
19.05.2018
18:37:53
это удобно только на первый взкляд имхо

Alexander
19.05.2018
18:38:55
это удобно для автополонения

Роман
19.05.2018
18:39:00

Google

Alexander
19.05.2018
18:39:09
расширяемые классы - норм тема

Aidar
19.05.2018
18:39:12

Alexander
19.05.2018
18:39:23
сейчас бы не пользоваться удобствами
и внезапно, компиляторы вот влияют на развитие языка, а IDE не должны

Aidar
19.05.2018
18:39:46

Роман
19.05.2018
18:39:56

Aidar
19.05.2018
18:40:46
лучшеб корутины доделали и ренджи, ато попсу какуюто ненужную толкают

Роман
19.05.2018
18:42:23

Aidar
19.05.2018
18:42:38
имхо щас будущий успех плюсцов напрямую зависит от корутин, констрейнтов, ренджей и метаклассов

Alexander
19.05.2018
18:43:17

Constantine
19.05.2018
18:43:24

Aidar
19.05.2018
18:43:27

Google

Stanislav
19.05.2018
18:44:04
я про корутины

Constantine
19.05.2018
18:44:26

Aidar
19.05.2018
18:44:31
да
ну точнее на интроспекции

Constantine
19.05.2018
18:44:49
смотри, мне нужно по имени создать потомка интерфейса

Stanislav
19.05.2018
18:45:01
остальное ждать не раньше 2023 ))

Constantine
19.05.2018
18:45:04
напиши плиз на метаклассах код

Aidar
19.05.2018
18:45:37

Stanislav
19.05.2018
18:45:57
https://herbsutter.files.wordpress.com/2018/04/cpp11147020-201803.png?w=500

Constantine
19.05.2018
18:45:59

Aidar
19.05.2018
18:46:19
точнее бывает но в джаве или пытоне
может еще евал введем?

Constantine
19.05.2018
18:47:02

Aidar
19.05.2018
18:47:24
у тебя там джит?
или я загробил задачу
если ты про рантаймстрока -> foo<строка> то эт вроде тож изи

Constantine
19.05.2018
18:48:18
нет
у меня там кодогенератор с xml-ками

Google

Aidar
19.05.2018
18:49:21
ну можно определить компильтайм открытие файлов наверное, но это не относится к метаклассам но относится к метакоду

Constantine
19.05.2018
18:49:26
в котором
<factory-method base="Interface" name="CreateInterfaceByName" attribute="tag-name"/>
<class name="Derived" base="Interface" tag-name="">
...
</class>

Aidar
19.05.2018
18:49:47
я забыл что ты кнопочки пишешь

Constantine
19.05.2018
18:50:17
я еще иногда читалки xml-ей пишу)

Aidar
19.05.2018
18:50:36
да тут всеже лучше генерация но не понятно почему кода
хотя ладно

Constantine
19.05.2018
18:50:57
у меня генерация .h файлов считай

Aidar
19.05.2018
18:51:02
типа потенциально это фронтенд для llvm

Constantine
19.05.2018
18:51:16
нормальная система вместо цппшной системы ашников

Aidar
19.05.2018
18:51:32
ты выбрал xml?

Constantine
19.05.2018
18:51:35
угу
давно еще

Constantine
19.05.2018
18:52:09
и не мучаюсь с прописыванием двадцати инклудов на каждый файл

Aidar
19.05.2018
18:52:26

Constantine
19.05.2018
18:52:45
нет, просто упоминание тайпнейм это инклуд его объявления или реализации
<class name="Derived" base="Interface" tag-name="">
...
</class>
вот этого достаточно, чтобы понять, что нужно заинклудать файлик с Interface

Aidar
19.05.2018
18:53:27

Constantine
19.05.2018
18:53:48
?

Aidar
19.05.2018
18:54:04
ну ты типа не можешь менять .h
а должен лезть в xml

Google

Constantine
19.05.2018
18:54:15
у меня есть кнопка
перейти на xml-ник

Aidar
19.05.2018
18:54:19
а айде хочет менять h

Constantine
19.05.2018
18:54:22
из cpp
зачем ей х менять?

Aidar
19.05.2018
18:54:59
ну рефакторинг какойнибудь

Constantine
19.05.2018
18:55:17
это оконечный код
его вообще нехрен рефакторить
в действительности есть проблемы

Admin
ERROR: S client not available

Constantine
19.05.2018
18:59:13
но это все сильно фигня, потому что с кодогенерацией когда ты неожиданно понимаешь что надо явно объявить все деструкторы, ты добавляешь за десять минут тысячу штук и у тебя все ок
в гребаном цппшнике функции написаны в том же порядке, что в описании класса
нет неиспользуемых инклудов и так далее
а, еще когда файл переезжает тебе не надо мучиться с заменой всех инклудов

Aidar
19.05.2018
19:01:36

Constantine
19.05.2018
19:01:46

Aidar
19.05.2018
19:02:01
ну метакод может добавлять методы

Constantine
19.05.2018
19:02:05
мне метакласс реализацию деструктора в цпп файл допишет?
интересно, в какой из?

Aidar
19.05.2018
19:02:15
заинлайнишь

Google

Constantine
19.05.2018
19:02:31
явное объявление как раз чтобы он был НЕ ИНЛАЙН
потому что std::unique_ptr<ForwardedName> и ты во всех подряд местах обязан инклудать реализацию ForwardedName
потому что в каждом TU будет инстанцироваться деструктор OwnerClass
по паре поводов
это минуты времени компиляции, вроде
пользуясь случаем, передаю привет в комитет по поводу модулей компиляции

Yaroslav
19.05.2018
21:03:47
Привет, не подскажите есть ли какая-нибудь группа, где можно conan.io обсудить? Ну и в целом системы сборки, CI, разруливание зависимостей для c/c++

Alexander
19.05.2018
21:05:29
ничего более специализированного не найдёшь в телеге

Yaroslav
19.05.2018
21:14:37
В общем мой проект использует стороннюю сишную библиотеку. Для удобства ее подключения, я создал для нее конан пакет и в своем проекте с помощью conan.cmake из симейка на этапе конфигурирования ее получаю. На этом этапе все хорошо.

Alexander
19.05.2018
21:15:42

Yaroslav
19.05.2018
21:16:36
StormLib. Опенсорсная либа для работы с близзовскими mpq архивами

Alexander
19.05.2018
21:17:00

Yaroslav
19.05.2018
21:17:08
Правда пришлось форкнуть ее, чтобы подправить себе по вкусу
Я на бинкрафтеровских шаблонах и делал. Но сборку на маке ниасилил. Ну и не уверен, что пакетированный форк(даже не релиз) не самой популярной либы кому-то нужен

Anatoly
19.05.2018
21:19:24

Alexander
19.05.2018
21:19:57
либа никому не мешает. главное, чтобы она была
надо наполнять пакетиник либами

Yaroslav
19.05.2018
21:22:12
Далее, я понял, что напрямую работать с сишным кодом неудобно, я решил написать для нее с++ обертку. StormLibCxx. И тут встает проблема. Если я в cmake сборке своего враппера вызову conan.cmake, то поломаю конану знание о зависимостях моего враппера. Получится conan -> cmake -> conan.
Отсюда и вопрос, как в таком промежуточном проекте, который и сам использует конан пакеты для сборки и его тоже будут использовать, как в нем организовать сборку