Код: Выделить всё
template
concept C = T::a;
struct A;
static_assert(!C);
struct A { static constexpr bool a = true; };
static_assert(C); //< fails everywhere unless above static_assert is removed
< /code>
Могу ли я как -то деактивировать это кэширование? Я попытался добавить дополнительный аргумент шаблона в концепцию со значением по умолчанию Lambda auto = [] {}
Код: Выделить всё
template
concept C = T::a;
struct A;
static_assert(!C);
struct A { static constexpr bool a = true; };
static_assert(C); //< fails in GCC only
< /code>
Это действительно работало с Clang, EDG и MSVC. Но GCC по -прежнему выполняет кэширование из предыдущей оценки концепции C
Здесь правильное поведение GCC?
Подробнее здесь: https://stackoverflow.com/questions/796 ... lt-caching