170 похожих чатов

Можно как-то написать assert с несколькими строками? Тип assert(std::vector<int> & a

= obj->getA();
std::count(a.begin(),a.end(), 5) == 0)

33 ответов

6 просмотров

А зачем?

Егор (Дима)- Автор вопроса
Danya🔥
А зачем?

не выходит в одну строку записать проверку

Егор (Дима)- Автор вопроса
Егор (Дима)- Автор вопроса
Constantine Drozdov
напиши лямбду

о кстати норм капец всрато конечно(

Егор (Дима)
обновил

Ну вынеси вектор за ассерт и сделай свое дело

Егор (Дима)- Автор вопроса
Егор (Дима)
мне это в релизе не нужно

Ну я не думаю что ссылка на вектор получается сложным путем + Я надеюсь компиляторы достаточно умны, чтобы выкинуть неиспользуемую переменную

Егор (Дима)- Автор вопроса
Danya🔥
Ну я не думаю что ссылка на вектор получается слож...

У меня достаточно рук, чтобы бензопила за неиспользуемые переменные ради отладочных проверок

Егор (Дима)
ну вектор для примера просто

Ну в более сложном случае ок

Егор (Дима)
так не будет варна же

Код сложнее становится

Егор (Дима)- Автор вопроса
место имение рейверы
Используй оператор запятая

да всё читается сложно, я в итоге просто в функцию вынес

Лямбда - хорошо

Егор (Дима)- Автор вопроса
Alexander Karaev
Лямбда - хорошо

assert([&](){ const std::vector<Foo> fee = Bar->getFoo(); return std::count(std::begin(fee), std::end(fee), Foo{1,2,3}) != 0; }());

Егор (Дима)- Автор вопроса
Егор (Дима)- Автор вопроса
Alexander Karaev
это в первый раз так

а на второй раз оно будет выглядеть лучше assert(IsBarHasFoo(Bar, Foo{1,2,3}))?

Егор (Дима)
assert([&](){ const std::vector<Foo> fee = Bar...

лучше assert([&] (auto&& fee) { return std::count(std::begin(fee), std::end(fee), Foo{1,2,3}) != 0; } (Bar->getFoo()))

Егор (Дима)
assert([&](){ const std::vector<Foo> fee = Bar...

getFoo имеет невнятную ссылочность, такие переменные лучше передавать в лямбду, а не объявлять внутри - лайфтайм выражения даёт намного меньше возможностей поймать в ногу

Егор (Дима)- Автор вопроса
Егор (Дима)
не понял, там же у fee нет ссылки

Есть ещё эстетический момент - в такой форме намного очевиднее, какой функции не хватает для нормальной записи мысли в одну строку.

Егор (Дима)
вот это более весомо как-то

Наоборот. Кстати говоря, есть (назовем это ограничение транзитивности), что в сложной системе плохо прыгать через слой абстракции, так что ещё непонятно, что недостаток функций не у Bar

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Почему стало ломаться на D11? "739002.86400000' is not a valid timestamp" function IncDateTime(aStamp:TTimeStamp;aKind:TTriggerKind;aInterval:Integer):TDateTime; //aStamp = 2...
Катерина Свиридова
8
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
думаешь я не смогу также сделать? мне это просто не удобно
int 💳 𝙖𝙞𝙧 𝙗𝙞𝙜 𝙗𝙤𝙗 🔫 check bio / spam block / AFK / nohello.com / GMT+3
9
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Ребят, чет я уже не догоняю... Крч в коде на асм там происходит нечто вроде a+число (a+1, a+2 и т.д.). Но почему строка lea ecx, [edx+1] работает как a+1?? В edx берется адрес...
Alan 🔝 Бэброу
3
Есть ли смысл устраиваться на 1с ? Даст это плюс в дальнейшем трудоустройстве на php? Просто у меня в городе вакансий на пхп нету. Или лучше удаленно искать. Опыта работы нету...
Azamat
14
hi im a cs student. i need some advice from people who have enough experience in Embedded Software. I need to know whether this profession is suitable for me. I have watched s...
Sahand 🏔️
8
Карта сайта