Open
Description
This C++23 program
#include <memory>
consteval auto func1() {
return std::make_unique<int>();
}
template <typename T>
consteval void func2() {
[](auto) -> void {
func1();
}(0);
}
int main() {
func2<int>();
}
is accepted by GCC, but Clang prints weird error:
error: immediate function 'operator()<int>' used before it is defined
9 | [](auto) -> void {
Online demo: https://gcc.godbolt.org/z/Kb8M7c3nb
Original discussion: https://stackoverflow.com/q/79221393/7325599