Constantine
Потому что struct S : public std::vector<S> {};
Ioann_
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4510.html
Ioann_
Ну или вроде как 17.6.8.4
Constantine
это пропоузал к стандарту
Ioann_
Да, это обсуждение с просьбой
Ioann_
Добавить это не как ub в будущие стандарты
Ioann_
Тогда вот:
Constantine
В стандарте нет гарантии, что std::vector может быть инстанцирован по Incomplete Type?
Ioann_
Да
Constantine
Это обсуждается?
Constantine
Это не UB
Constantine
UB это если бы это содержало ошибку
Ioann_
Ну, а что это тогда :?
Ioann_
Если нужна отсыллка к стандарту, то надо смотреть вот эти главы
Ioann_
17.6.4.8
Berkus
((( код (((
если в одну строчку то достаточно одного ` с каждой стороны, три для блока
Ioann_
In particular, the effects are undefined in the following cases: … if an incomplete type (3.9) is used as a template argument when instantiating a template component, unless specifically allowed for that component
Ioann_
Кажется так как то :)
Ioann_
Нет
Constantine
хм....
Ioann_
Если например, кстати рассмотреть вектор с имплейс аллокацией для мелких массивов... ну и бог с ним. Замечу я не сторонник холиваров. Но тут есть интересные моменты и решения. А на последний момент я лично и сам попадался - как писал, при реализации суффиксного дерева
Constantine
короче имхо это ошибка стандарта
Constantine
потому что в тот день, когда MSC перестанет поддерживать инстанцирование std::vector по incomplete type, я выброшу std::vector из кода
Ioann_
У меня он так то вообще не спользуется. Правда то что используется - было написано очень давно. Когда stl был так плох, так плох....
Ioann_
Но поддерживается :)
Constantine
Хм... класс std:;vector у меня был подменен в дебаге
Constantine
Потому что VS 2003 не делал _xran в дебаге в operator []
Constantine
Это ужасная глупость их была
Constantine
Потому что код существенно использует using declaration для std::vector of incomplete type
Constantine
И это вопрос охренительного времени компиляции
Constantine
линковка вижаком 30+ секунд основной части
Constantine
я не так давно увеличивал диск с 10ГБ до 20ГБ
Constantine
потому что перестала лезть компиляция в один таргет
Constantine
да, ясен пень все на SSD
Constantine
вроде полная пересборка на многопоточной версии MSC 14 занимала 10+ минут
Constantine
на 4 ядрах
Constantine
там все очень хорошо с этим, например, объявлены все деструкторы явно
Constantine
ну не все, но очень много
Constantine
короче на тему времени сборки реально парились
Constantine
и да, это именно что сборка с настройкой вижака, разрешающей параллельный компиль внутри одного проекта
Constantine
там не так много, что-то в районе 20 человеколет
Constantine
не считая зависимостей
Stanislav
вроде полная пересборка на многопоточной версии MSC 14 занимала 10+ минут
чет дофига, у меня qt без вебенжайна компилится минут 20
Stanislav
или 30
Constantine
там один проект?)
Constantine
с точки зрения вижака?
Stanislav
нет, я nmake файл генерю обычно )
Stanislav
но там проектов 10
Constantine
разные проекты без зависимости параллелятся сами по себе
Constantine
там до сих пор никто не занялся тем, чтобы сбросить с основного проекта еще штук пять отдельных кусков
Stanislav
ну правда у кутишников есть еще jom
Constantine
поэтому получается разница
Constantine
ну проблема в линкере
Stanislav
это тот же nmake только умеет как make в жобы
Constantine
и я давно привык работать во время полного рекомпиля, если он нужен)
Stanislav
но он там автоматом паралеллит, без указания
Constantine
вообще форварды и генератор в сумме все очень хорошо делают в плане пересборки при модификации не всего
Constantine
кстати, явное объявление всех деструкторов дало, вроде, 2%
Constantine
собственно предотвращает инстанцирование компилятором в каждой единице компиляции
Anonymous
https://github.com/jwasham/coding-interview-university/blob/master/README.md
Александр
https://m.habrahabr.ru/post/333414/
melvin
самое время начать въезжать в сипипи
Алдар
разве?
пока будешь новое учить старое забудешь))
Алдар
и так по кругу
melvin
значит лучше не начинать?
vladislav
в основном сахар
melvin
а по страуструпу сипипи еще норм учить?
melvin
хз
melvin
а у страуструпа норм база?
Александр
https://www.reddit.com/r/cpp/comments/6ngkgc/2017_toronto_iso_c_committee_discussion_thread/ Тут поболее инфы
Berkus
темплейтные лямбды??
Крылатый
темплейтные лямбды??
Была такая тема, да
🦥Alex Fails
темплейтные лямбды??
Ага. Ща в канал простенькую линкоту зафигарю
Evgenii
Модули и функции над строками конечно самое приорететное должно быть)
Berkus
constexpr_strstr )