2
람다에서 static_assert가있는 constexpr이 올바른 컴파일러는 무엇입니까?
static_assert에서 를 사용하려면 if constexpr일부 템플릿 매개 변수에 따라 조건을 만들어야합니다. 흥미롭게도 코드가 람다로 싸여 있으면 gcc와 clang이 동의하지 않습니다. 다음 코드는 gcc로 컴파일되지만 clang은 if constexprtrue 일 수 없더라도 assert를 트리거 합니다. #include <utility> template<typename T> constexpr std::false_type False; template<typename T> void foo() { auto f = [](auto x) …