
Jon Willesen wrote:
Jon Willesen wrote:
The only other thing I can think of that concerns me at all is if I'm trying to call a function that has been overloaded to take 1..N arguments using the preprocessor library or some other code generator. Then this code:
func(list_of<string>(), "foo", "bar", "baz");
might compile successfully and pass four arguments to func when I really meant to pass one argument:
func((list_of<string>(), "foo", "bar", "baz"));
Thorsten Ottosen wrote:
I think was the motivation. I had a user that called a constructor:
cons( list_of(3)(5), 4, 5 );
he wanted to pass 3 arguments, but only one was passed.
You got it backwards -- your example *does* pass three arguments.
Not before I removed operator,() from the class returned by list_of(). That was my point. So pick your medicine: reintroduce it to satisfy your program and break his or leave it as it is to break yours. I think having that operator,() in the first release was a mistake. -Thorsten