
On 19/06/10 15:50, er wrote:
template<typename... T> Implementation-defined ref_csv(T&&...)
On second thought, this does not obviate the need for cref_csv (emphasis on prefix 'c'), to express intent to cast all arguments to const, would it?.
No, although I suspect that use case is small.
(there's some wobbles there about how to go from this list of potentially-different Ts to the one true T of the container, but they're not insurmountable)
Do you mean int a; long b; ref_csv_0x(a,b) as potentially a problem? So it would for ref_csv, which can be solved like this: cref_csv<long>(a,b); Would not the same apply to ref_csv_0x?
Surprisingly it compiles, but it doesn't do what you want. It captures the first argument as an rvalue-reference instead of an lvalue-reference. This works: ref_csv_0x<long&>(a,b) but even this only 'by luck'. This for example wouldn't do what you mean: ref_csv_0x<long&>(b,a) You'd need to say ref_csv_0x<long&, long&>(b,a)
I'm not much familiar with 0x but I'll probably toy with these ideas (I have to emulate another OS which tells me that perhaps it's not yet mainstream) and I'll update this thread if anything meaningful comes out of it.
OK. John Bytheway