Но даже самый простой C ++ 20 Пример
Код: Выделить всё
#include
consteval bool f() { return false; }
// ok in GCC and Clang, error in MSVC
static_assert( std::not_fn(f)() );
Код: Выделить всё
error C7596: 'f': cannot take address of immediate function outside of an immediate invocation
Код: Выделить всё
static_assert( std::not_fn()() );
< /code>
Сбой со следующей ошибкой в Clang: < /p>
error: no matching function for call to 'not_fn'
note: candidate template ignored: invalid explicitly-specified argument for template
Все ошибки разрешаются, если объявить функцию f как constexpr вместо constoval . перегрузки) быть совместимы с непосредственными функциями?
Подробнее здесь: https://stackoverflow.com/questions/797 ... -functions
Мобильная версия