|
|
C++11 variadic templates (69 characters)
template<int... p>
void f()
{
return f<0,p...>();
}
int main() {
f();
}
Configuring maximum template instantation depth you could set the length of the error. Here is an example using GCC 4.8.1 with default template depth (900):
prog.cpp:4:22: error: template instantiation depth exceeds maximum of
900 (use -ftemplate-depth= to increase the maximum) substituting
‘template void f() [with int ...p = {0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}]’
return f<0,p...>();
^ prog.cpp:4:22: recursively required from ‘void f() [with int ...p = {0}]’ prog.cpp:4:22: required from ‘void
f() [with int ...p = {}]’ prog.cpp:8:4: required from here
prog.cpp:4:22: error: no matching function for call to ‘f()’
prog.cpp:4:22: note: candidate is: prog.cpp:2:6: note: template void f() void f()
^ prog.cpp:2:6: note: substitution of deduced template arguments resulted in errors seen above prog.cpp:4:22: error:
return-statement with a value, in function returning 'void'
[-fpermissive]
return f<0,p...>();
^
Also you could add ten more characters and use unsigned integer underflow to increase the length of the error:
template<unsigned int... p>
void f()
{
return f<0-1,p...>();
}
int main() {
f();
}
prog.cpp:4:24: error: template instantiation depth exceeds maximum of
900 (use -ftemplate-depth= to increase the maximum) substituting
‘template void f() [with unsigned int ...p =
{4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u,
4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u}]’
return f<0-1,p...>();
^ prog.cpp:4:24: recursively required from ‘void f() [with unsigned int ...p = {4294967295u}]’ prog.cpp:4:24:
required from ‘void f() [with unsigned int ...p = {}]’ prog.cpp:8:4:
required from here
prog.cpp:4:24: error: no matching function for call to ‘f()’
prog.cpp:4:24: note: candidate is: prog.cpp:2:6: note:
template void f() void f()
^ prog.cpp:2:6: note: substitution of deduced template arguments resulted in errors seen above prog.cpp:4:24: error:
return-statement with a value, in function returning 'void'
[-fpermissive]
return f<0-1,p...>();
^
Here is an example running at ideone.
|
|
|
answered Jan 2 '14 at 23:36
|
|
Error.message.length / code.length. – user unknown Jun 30 '11 at 16:28