Anton
Смотри ещё ответ Витторио https://stackoverflow.com/a/40840786
Alexey
(из стандарта 14.5.7.1)A template-declaration in which the declaration is an alias-declaration (Clause 7) declares the identifier to be a alias template. An alias template is a name for a family of types. The name of the alias template is a template-name
Alexey
>An alias template is a name for a family of types.
Alexey
Мне как-то непонятно из стандарта новое семейство имен или нет.
Egor
А какое ещё может быть..?
Alexey
на stackoverflow пишут, что "An alias is merely an alias, and does not introduce a new family of types"
Alexander "SonnySlave"
>An alias template is a name for a family of types.
об этом витторио тоже написал
Alexey
об этом витторио тоже написал
В стандарте об этом не сказано однозначно(ну или я перевел плохо)
Anonymous
Можете посоветовать хорошую книгу про C++? Заранее спасибо.
https://github.com/cplusplus/draft/tree/master/papers Лучше книг по плюсам не найти
Ioann_
Не могу утверждать наверняка, но похоже на багу Intel Compiler
Ioann_
https://godbolt.org/g/a1KyVr
Ioann_
Посмотрите на ASM код, у меня в интринсах - нету vaddpd, vmulpd инструкций, напротив - все сделано на FMA. А интел, почему то, именно при развороте цикла(без разворота - все ок), их накидал, при этом накидал он и FMA инструкции.
Ioann_
То ли дело GCC - код ровный, и хороший.
Ioann_
Еще один плюсик к карме GCC. Вообще, перенести б его на Win(без этих ваших МинГВ), хорошо было бы.
Anonymous
шо? а для каких?
HPC, игрушки.
Anonymous
Везде, где одна микросекунда сделает всё намного хуже.
Ioann_
там где 1сек сделает хуже, это тебе надо в Сишечку и в Фортранчег
Ioann_
У C++, все же 5 микросекунд выйдет :)
Anonymous
Ну, если аккуратно и с умом писать, то нормально выйдет и на C++.
Anonymous
Я не говорю про "C с классами сейчас".
Dr. Friedrich
C с темплейтами!
Alexander "SonnySlave"
Я не говорю про "C с классами сейчас".
ох... снова мне доставать ссылку, где показана истинная мощь Си перед С++
Ioann_
Не стану доказывать обратного, не стану - все же, можно сказать так: если взять идеальный сферический компилятор в вакууме, который прямо способен в C++ коде, все эти оптимизации, кеши сжать как надо, и еще где нужно префетч вставить и еще много всего, то да - на C++ можно, конечно же.
Alexander "SonnySlave"
на Си написано сразу быстро и шелковисто. На крестах пришлось тюнить
Dr. Friedrich
на Си написано сразу быстро и шелковисто. На крестах пришлось тюнить
Ну ток не «сразу», а после нескольких раундов отладки и починки багов. Как автор признаётся в комментариях.
Ioann_
А еще Си код проще декомпилировать, нежели С++ код. Да :)
Alexander "SonnySlave"
ну так то и крестовая реализация подозреваю тоже с багами 😊
Dr. Friedrich
ну так то и крестовая реализация подозреваю тоже с багами 😊
Ну да, в самодельной реализации priority_queue оставить багов сам б-г велел. В обеих реализациях, в сишной и плюсовой.
Alexander "SonnySlave"
ну ты сам видишь, зачем он написал именно свою реализацию, а не заюзал готовую
Alexander "SonnySlave"
а я не понял, в сорцы правда не приглядывался
он хотел просто идентичную реализацию priority_queue для обоих вариантов
Anonymous
В итоге написал жесткий тест на аллокатор там, где его вообще не должно было быть.
Matwey
В бусте что-то готовое есть на эту тему
Matwey
Вроде бы
kitsu
Есть норм анлог std:includes для разных типов итерабельных элементов?
kitsu
aka: std::includes(v..,w, .., [](auto a, auto b) {f(a) == g(b)}), где f/g - не темплейтные/не перегруженные ф-ии
Ostap ꑭ
Через std::any & any_cast<>
Andrii
Почему функции НОД, НОК добавили только в 17 стандарте, а не намного раньше? Неужели они настолько непопулярны?
Aidar
В С++14 есть std:: experimental::gcd\lcm
В 17 есть неэксперементал
Matwey
Господа
Matwey
Мне тут потребовалось поковыряться в старом ядре, а оно не загружается. Вот два дня выяснял почему. Хочу подарить эту интересную находку местной публике: https://github.com/torvalds/linux/commit/455bd4c430b0c0a361f38e8658a0d6cb469942b5
Matwey
О. Пивас-стулия об этом писала у себя
Да я просто восхищен тем, что кто-то такую оптимизацию выдумал вообще
Evgenii
интересно какой от нее профит
Matwey
у компилятора тараканов в голове больше, чем у девушки
Matwey
это только у gcc
Кстати, clang уже может ядро собрать?
Constantine
Кстати, clang уже может ядро собрать?
Не знаю, у меня легаси код под вижаком
Constantine
И я виндоеб
🦥Alex Fails
Кстати, clang уже может ядро собрать?
Был же проект вроде, тут писали)
Constantine
Но беркус гарантирует, что шланг лучший компилятор для плюсов
Constantine
А в чем проблема?
🦥Alex Fails
Что ядро на гцц-екстах
🦥Alex Fails
Вот проблема)
Constantine
Ну то есть у них легаси код под гцц)
🦥Alex Fails
Да ядро сплошное легаси какое-то😂
Matwey
У меня еще есть подобная находка где-то про ядро, но касательно поведения линковщика из binutils.
🦥Alex Fails
А кидай сюда) )
Matwey
Да я потерял где-то. Потом может найду
Constantine
std::clamp The behavior is undefined if the value of lo is greater than hi
Constantine
ну почему, почему не implementation defined
Berkus
ну почему, почему не implementation defined
пушо оно унутре делает stdmin(stdmax(v, lo), hi)
Constantine
пушо оно унутре делает stdmin(stdmax(v, lo), hi)
ну оно очевидно вернет в этом случае либо lo, либо hi
Constantine
а еще нет inplace версии и параметр по cref, гениально
kitsu
Есть родительский класс, которий хранит в себе лямбду, с захватом this Вылезают очевидные проблемы при копировании/муве Можно ли как-нибудь решить это не меняя дочерних?
Constantine
?
Constantine
Если класс содержит self reference надо сразу CC/MC банить
kitsu
ленивость вычислений иначе не выйдет сделать
Constantine
не очень понимаю, как ленивость связана со временем жизни
kitsu
ну, не совсем так
kitsu
большая функция зависит от мелкой
Constantine
ну т.е. у меня сейчас бинды на this в дебаге обмазываются проверялкой, при этом хранилище ссылок проверялки просто не CopyConstructible/MoveConstructible