https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85493
--- Comment #2 from Ihor Rudynskyi <ihorelo at mail dot ru> ---
Summarizing:
g++ 7.2 allows to write this code.
struct no_def
{
no_def() = delete;
};
template<typename...>
int foo() = delete;
template<typename...>
void test()
{
decltype(no_def()) a1{};
decltype(no_def(1,2,3)) a2{};
decltype(foo<>()) a3{};
}
int main()
{
test<>();
}
but according to godbolt a3 case seems to have been fixed on trunk
