Alexander "SonnySlave"
поговорил с drodri. Короче, каждый мейнтейнер либы на своё усмотрение может выводить наружу какие-нибудь ручки для регулирования на своё усмотрение. В крайнем случае юзер может попытаться переопределить всякие CXX_FLAGS
Alexander "SonnySlave"
больше этого сложно что-либо сделать
Alexander "SonnySlave"
Внезапно нашёл. https://github.com/HowardHinnant/date
🦥Alex Fails
Внезапно нашёл. https://github.com/HowardHinnant/date
Алилуйя, спиздим в проект!
Alexander "SonnySlave"
Алилуйя, спиздим в проект!
когда пакетишь либы, находишь много интересного. и кругозор реально расширяется)
Igor
Внезапно нашёл. https://github.com/HowardHinnant/date
Eh,это не таймзон? https://www.youtube.com/watch?v=Vwd3pduVGKY Надо будет глянуть, дядька интересные либы над chrono надстраивает
Anonymous
Как в целочисленном массиве вычислить сумму модулей?
Vladislav
циклом, например?
Vladislav
а вообще, #supapro
Alexander "SonnySlave"
В стандарт который пихается
Anonymous
циклом, например?
Понятно что циклом
Anonymous
В нем что писать
Anonymous
int sum; for (unsigned i = 0; i < size; ++i) { sum += abs(array[i]); }
Anonymous
Ну!
Anonymous
reduce(std::plus<>{}, map(std::abs, array))
Какое-то функциональное программирование :\
Anonymous
Чувствую себя старым.
Anonymous
Чувствую себя старым.
Почувствуй себя "зрелым"
Matwey
reduce(std::plus<>{}, map(std::abs, array))
Теперь и так можно?
Matwey
Наконец-то нормальный ЯП
Nikita
Теперь и так можно?
Если реализовать map и reduce, то можно. К сожалению, не могу выложить (
Nikita
Теперь и так можно?
А так, на недавней конфе по C++20 уже решили, что часть алгоритмов из stl получат constexpr
Anonymous
Почему этого дерьма нет в стандартной либе?
Anonymous
Или будет?
Anonymous
Если реализовать map и reduce, то можно. К сожалению, не могу выложить (
map по идее должен возвращать некий "рейнж", который при дереференсе итератора применяет к изначальному значению переданную функцию?
Nikita
Почему этого дерьма нет в стандартной либе?
std::transform — map Редьюс не завезли
kitsu
std::transform — map Редьюс не завезли
transform не может in-place же
Anonymous
А вот надо!
Anonymous
accumulate завезли
Там итераторы...
Anonymous
Ну, у нас контейнер map(std::abs, array), как мы возмём начало и конец?
Anonymous
Два раза писать не хочется.
kitsu
boost
Anonymous
Nikita
Ну, у нас контейнер map(std::abs, array), как мы возмём начало и конец?
Сделать обёртку над std::transform, если без constexpr
Anonymous
А Ranges TS погулять выйдет?
Anonymous
Надеюсь, что сольют в C++20.
Aidar
Два раза писать не хочется.
Это кстати чисто интерфейсно не позволяет хранить там временные штуки
Aidar
Очень круто придумано
Anonymous
Ну, аргумент должен жить до выхода из accumulate, верно?
Aidar
Ну, аргумент должен жить до выхода из accumulate, верно?
Для аккумулейт верно, для остальных нет
Anonymous
std::transform in-place всё-таки хочется.
Anonymous
Иначе не получится исходную задачу в одну строчку решить)
Nikita
Иначе не получится исходную задачу в одну строчку решить)
Можно в замыкание лямбды положить и тут же её вызвать
Vladislav
reduce(std::plus<>{}, map(std::abs, array))
а давно range'и завезли?
Anonymous
а давно range'и завезли?
В мечтах уже всё завезли...
Anonymous
(
Nikita
а давно range'и завезли?
не завезли, то сам писал
Anatoly
а давно range'и завезли?
потихоньку завозят http://en.cppreference.com/w/cpp/experimental/ranges
Александр
reduce(std::plus<>{}, map(std::abs, array))
лучше ведь через operator | :( P.S. плохо знаком с синтаксисом либы, исправить не смогу
Berkus
reduce(std::plus<>{}, map(std::abs, array))
+ именно так, возможно еще и reduce(std::execution::par, ...
Nikita
Constexpr итераторы же уже есть?
Есть, std::array в пример
Berkus
std::transform — map Редьюс не завезли
и да std::reduce есть в <numeric>
Berkus
начиная с с++17
kitsu
не, если 17 брать то и transform_reduce можно
kitsu
вряд ли эффективно, зато читается прекрасно
Igor
лучше ведь через operator | :( P.S. плохо знаком с синтаксисом либы, исправить не смогу
был какой-то c++linq или что-то наподобие, там operator | повсеместно использовался
Олександр
/vzhuh@FailsBot
melvin
читаю чати и не понимаю почему такой популярный среди тру прогеров язык получает крутые абстракции так поздно :/
Anonymous
А что будет делать?
Berkus
Я ТОЛЬКО ЗА
Berkus
причем унарную и бинарную версии
Anonymous
читаю чати и не понимаю почему такой популярный среди тру прогеров язык получает крутые абстракции так поздно :/
Мы все связаны требованиями обратной совместимости и WG21 больше срётся над тем, как сделать X, не сломав эту совместимость, вместо введения мелких, но полезных фич.
Berkus
а многие веселые нововведения ломают семантику и старый код самым неожиданным образом
Никита
В отдельном хедере создается константный unique_ptr с вектором. Хедер подключается 1 раз в stdafx.h Но анализ памяти показал, что создается два экземпляра вектора. Вопрос: почему так происходит и к какому объекту я обращаюсь, Скорее всего это просто незнание глобального const unique_ptr, но все же)
Anonymous
А stdafx.h сколько раз подключается?
Anonymous
Два?
Anonymous
Вот у тебя и лежит два unique_ptr с двумя векторами в двух TU.
Anonymous
tu1.cpp unique_ptr<...> a(...); tu2.cpp unique_ptr<...> a(...);