
I'm curious: we have three list_of functions (list_of, ref_list_of and cref_list_of) but only two of them have analogous csv functions (ref_csv and cref_csv). Why is there no simple csv function, taking arguments by value?
John Bytheway
You are right that csv is a new interface and it seems logical that it should be available for passing arguments by value. I guess it wouldn't be an insurmountable task to overload csv() on the number of arguments, internally calling list_of(), and returning its results. That's approximately how ref_csv() and ref_list_of() relate to each other. What is complicating things, however, is that list_of() itself is overloaded on the number of arguments. list_of<T>(x,y)(z,w) creates an anonymous list of elements created like this : T(x,y) and T(z,w). If you want to achieve the same thing with cref_csv, you have to do: cref_csv(T(x,y),T(z,w))