Size: a a a

2020 August 17

ST

Sergey Tarasov in pro.cxx
Побитый Кирпич
Короче перепиши свой пример на использование index_sequence<I...>, делай fold по I - это индекс по нему ты можешь получить тип в списке (если тебе именно типы нужны).

Теперь задача сводится к тому чтобы сконструировать index_sequence<N-1, N-2, ..., 0>. Это можно сделать чуть чуть изменив реализацию std::make_index_sequence, которая в прямом порядке индексы строит, чтоб строила в обратном
Спасибо, попробуем...)
источник

ST

Sergey Tarasov in pro.cxx
Не выглядит, конечно, как элегантное коробочное решение, но что уж поделаешь...))
источник

ST

Sergey Tarasov in pro.cxx
Antony Polukhin
прям изкоробочного ничего нет, но в C++23 возможно проскочит работа с variadic pack как с массивом
auto [x...] seq = integer_sequance();
(initType<Types...[sizeof...(Types) - x]>(), ...);
В 23 возможно проскочит... звучит ободряюще... ))))
Но все равно спасибо)
источник
2020 August 18

AK

Andrei K in pro.cxx
Alexander Potapov
Посчитай сколько электрон проходит за это время
Нисколько, электроны вообще не двигаются практически.
источник

AK

Andrei K in pro.cxx
Электромагнитная энергия не электронами переносится.
источник

AK

Andrei K in pro.cxx
Anton Lashkov
Кто-нибудь пользуется сопрограммами из boost::asio (stackful, которые создаются через boost::asio::spawn), периодически всплывает проблема когда не хватает стека, например много стека могут отъедать вызовы функций сторонней библиотеки и заранее это неизвестно, и после разработки или  доработки кода  программа просто падает в некоторых случаях в процессе тестирования или в процессе уже работы. Приходится подгонять размер стека под конкретную сопрограмму. Так вот может кто-нибудь копал на тему автоматически расширяемого стека или каких-нибудь явных ассертов/исключений при нехватке стека (интересует под MSVC) чтобы это еще и как-то с boost::asio::spawn совместить?
Я пользовался, дропнул boost::coro в сторону boost::context::callcc совмещённый с async вызовами. В целом общая рекомендация не делать больших контекстов, не вызывать рекурсивные функции, дробить контексты на более мелкие, и вообще аккуратно относиться к коду. Но если это лень делать или просто не времени, то как я уже упомянул callcc поддерживает фичу “segmented stacks” это ровно то, что надо.
источник

AK

Andrei K in pro.cxx
Сами бустовые корутины в сочетании с асио мне показались весьма оверхедными. А callcc это практически голая обёртка над контекстом исполнения, с которой можно работать как с первоклассным объектом. Разница с корутинами не очень большая в плане переписывания кода.
источник

AK

Andrei K in pro.cxx
Надо наверное уточнить, что для этого еще флажок при сбиорке буста надо указать.  Но в целом это добавляет оверхеда. Лучше просто разобраться, почему корутины едят столько стека и что-нибудь с этим сделать.
источник

AK

Andrei K in pro.cxx
источник

AK

Andrei K in pro.cxx
Если что, у callcc есть трюк, который я придумал когда ими пользовался и вроде бы не находил, чтобы кто-то делал так же. Из resume_with можно утащить свой объект контекста и положить его куда-нибудь, и затем его продолжить из другого произвольного места. Это позволяет внутри корутин писать привычные конструкции с read/write используя контексты. Делается обычный async_op, в хендлере которомго ровно две инструкции, сохранение ошибки и прыжок в нужный контекст с мувом, а в самой корутине после async_op просто resume основной корутины (или с небольшими изменениями следующей готовой к обработке). Выглядит вполне синхронно и можно зафасадить как обычный read/write.
источник

AK

Andrei K in pro.cxx
Чятик, я что-то не понимаю, или gcc до сих пор не поддерживает <charconv> ??
источник

AK

Andrei K in pro.cxx
g++-10 говорит, что не может найти перегрузку для std::to_chars для double
источник

VS

Vlad Serebrennikov in pro.cxx
Andrei K
Чятик, я что-то не понимаю, или gcc до сих пор не поддерживает <charconv> ??
8 инты, 11 плавающую запятую
поищите P0067 по https://en.cppreference.com/w/cpp/compiler_support
источник

AT

Andrew Titov in pro.cxx
Andrei K
g++-10 говорит, что не может найти перегрузку для std::to_chars для double
На cppreference есть приписка "no FP".
источник

AK

Andrei K in pro.cxx
Andrew Titov
На cppreference есть приписка "no FP".
Где?
источник

AK

Andrei K in pro.cxx
Я прямо туда сейчас смотрю
источник

AK

Andrei K in pro.cxx
А, в таблицу.
источник

VS

Vlad Serebrennikov in pro.cxx
Andrei K
Где?
я чуть выше написал
источник

AK

Andrei K in pro.cxx
Нашёл, спасибо.
источник

AK

Andrei K in pro.cxx
На убунте 18.04 нет 11-го гцц; подстава
источник