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

Можно ли в std::function положить лямбду с if constexpr? https://godbolt.org/z/35W311KrP msvc не

работает, gcc, clang работает

8 ответов

9 просмотров

Положить-то можно. Например, всё работает, если написать if constexpr (true). Дело в условии, видимо

if constexpr тут точно ни при чем

В clang работает же https://godbolt.org/z/oax1dYT84

Egor-Pugin Автор вопроса
Sergey Skvortsov
В clang работает же https://godbolt.org/z/oax1dYT8...

ок, видимо, старый пример там пробовал или что-то не так посмотрел

Условие в if constexpr ложно под MSVC, поэтому происходит попытка разыменовать std::unique_ptr<a> и передать результат в функцию по значению, что, естественно, работать не может. Т.е. реальный MRE такой: constexpr bool test = requires { [](auto o) {}(std::unique_ptr<a>{}); }; static_assert(test); Под Clang я вижу здесь варнинги, в суть которых пока не горю желанием вникать

Думаю, это достаточно неплохое временное решение. А может и не временное...

Egor-Pugin Автор вопроса
Ofee Oficsu
Условие в if constexpr ложно под MSVC, поэтому про...

спасибо, добавил в тикет. Заодно у гцц открыл https://developercommunity.visualstudio.com/t/c-requires-expr-does-not-work/1582069 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103212

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

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

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
кто-то пользуется компонентами rx ? как их лучше ставить, через OPM? (lazarus)
Iluha Companets
15
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
есть тут кто-то , кто только начал изучать си? если проходите курс на степике или как-то сами изучаете, пишите, может, скооперируемся?..
Eule
25
Слушайте, ещё такая интересная задачка. Сделан аудит действий пользователей через триггеры в базе, соответственно каждый пользователь имеет свой логин и пароль в базе. Это пре...
Сергей Бычков
12
Скажите, тут нет проблемы? IMyInterface1 = interface function GetInterface2: IInterface2; ... function TMyInterface.GetInterface2: IInterface2; begin Result := TI...
Ruslan aka DUDE
18
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
вопрос по москвину - не понимаю вот такого вопроса похоже Сколько разных всегда завершающихся функций с типом a -> a -> b -> a -> a можно реализовать? Две функции одинаково...
Fedor
11
t.me/<username> и tg://user?id=<id> отваливаются по понятным причинам
Denis 🐍|👑 | darling! 🥰
7
Кстати, раз про скачивание файлов разговор зашел) Сделал бота для себя (транскрибирующего и суммаризирующего встречи) но не ожидал что за 2 месяца 10к пользователей набежит😅...
Andrey Obolenskiy
8
Карта сайта