
IMO, a runtime error here is just not acceptable.
I disagree. I don't see compile-time error as an advantage here, but only a burden. I very much prefer to be able to write
I'm sorry but that just doesn't make sense... You are basically saying that, straight C++, if you have...
void foo(int arg1, int arg2);
And I use it as...
foo(1);
That C++ should give me a runtime error instead of the compiler doing the syntax checking.
Are you serious?
I am discribing following sotuation: void foo(int arg1, int arg2) {...} void foo(int arg1) {...} template<typename Params> foo1( Params const& p) { if( p.has(asrg2) ) foo( p[arg1], p[arg2] ); else foo( p[arg1] ); } I think it's very convinient to be able to call different overloads of the same function without using any MP tricks. Gennadiy.