C++ chat 0. Простые вопросы, лабы и о IDE — в чат новичков @supapro 1. No Ads, offtop, flood 2. Полные правила тут https://t.me/ProCxx/259155 Объявления о вакансиях,эвентах - в лс @AlexFails или @MasterZiV канал вакансий https://t.me/ProCxxJobs
Приветствую!
Вопрос про boost asio
void Acceptor::doAccept()Есть такой Acceptor который зацикливает вызов сервера
{
if (stopFlag) { return; }
acceptor.async_accept(clientSocket,
[this](boost::system::error_code ec)
{
if (!ec) { std::make_shared<Server>(std::move(proxySocket), std::move(clientSocket), proxy)->run(); }
doAccept();
});
}
void Acceptor::stop() {Вопрос - как полностью прервать все, не трогая при этом io_context
clientSocket.close();
proxySocket.close();
}
Добрый вечер. Как засунуть операции плюс, минус, умножить, деление в переменную. Или как прочитать, какую операцию ввел пользователь? Благодарю
Читать полностью…Так смысл в том, чтобы это спрятать и писать похожий на РТ код
Читать полностью…Мне в другом чате реализацию лучше предложили через явный вызов template operator(), вопрос в другом
Читать полностью…Ну типа тот же интерфейс
Потом std::make_index_sequence, а потом fold expression
апплай как раз распаковывает параметры, там по факту обходятся все пары элементов, и выводятся только равные
Читать полностью…а ну или не сможешь, если не только типы проверяешь, но и рантайм значения
Читать полностью…std::apply([&](auto&&... x_elems){
return (std::apply([&](auto&&... y_elems){
return ([&]{
if constexpr(requires{x_elems == y_elems;})
if(x_elems == y_elems) std::cout << x_elems;
}, ...);
}, y), ...);
}, x);
там по типу, тоесть
<int,int,double> => <int,double>
тоесть если у меня
(1,10,2.0) => ([int], 2.0)
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2186r2.html
Смотрите что творится.
https://www.boost.org/doc/libs/1_83_0/libs/mp11/doc/html/mp11.html#mp_for_eachlf — похоже, for_each
+ iota
Причем в fold expression можно сразу индекс дать функции, без всяких макросов
Читать полностью…Для них нужно чё-то куда-то пробрасывать, что так себе. Хочется писать +- похожий код на обычный
Читать полностью…https://godbolt.org/z/Ps8oxqK6E
А есть что-нибудь такое где-нибудь в бусте?
Кажется, что проще написать for_each по таплу, и переиспользовать его ради читаемости
Читать полностью…намудрил хорошо, да вот ты по запаковал параметры и их всех сравниваешь, а не каждый по отдельности, тоесть
(1,2) = (1,2,3)
false
может я ошибся, не люблю std::apply, хотя без него запринтить тот же тюпл никак
Те кто пишут на C, обычно всё же на GNU-чего-то там. А то в стандартном ни typeof нет, ни __builtin_classify_type, да и Generic только недавно появился. Программировать вообще невозможно.
Читать полностью…+100500. Можно даже в голом C объявить какую-то структуру, даже пустую, от которой "наследоваться" путём вставки в наследника и таким образом вместо void* передавать осмысленный тип контекста который без опасных кастов, с помощью container_of, превращается из базового типа обратно в конкретноый (а конкретный в базовый с помощью оператора &).
Читать полностью…Михаил, Ваш вопрос перемещён в чат @supapro. Там Вам с радостью помогут решить проблему :)
Читать полностью…