https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110030
Bug ID: 110030
Summary: recursive template leads to long compilation time
Product: gcc
Version: 12.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: stevenxia990430 at gmail dot com
Target Milestone: ---
The following invalid program is very slow to compile (>40 seconds) and return
error. Compared to clang which can quickly reject the program. Tested on gcc
trunk.
To quickly reproduce: https://gcc.godbolt.org/z/TeP69vrne
```
#include <tuple>
template<typename... Args>
auto take_arguments(Args &&...args) {
return take_arguments(std::index_sequence_for<Args...>{},
std::forward<Args>(args)...);
}
auto bytes_as_string(const BytesView &input) {
return call_fun(&std::string::append, take_arguments(input));
}
int main(){
}
```