This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [v3] constexpr tuple


On 8 Sep 2011, at 18:34, Paolo Carlini wrote:

> On 09/07/2011 07:44 AM, Daniel Krügler wrote:
>> Is tuple_cat now considered conforming?
>> No, see:
>> 
>> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50159
> By the way, Daniel, I was considering giving that issue a try, if you have tips (or even more ;) about the implementation of the C++11 conforming tuple_cat, I'm all ears…

This might be totally insane, but I believe that:

tuple_cat(tuple_cat(A,B), C) always equivalent to tuple_cat(A,B,C);

Therefore, how close would something like (warning, not even compiled)

template<class _Tuple1, class _Tuple2, class… _Tuples>
auto 
tuple_cat(_Tuple1&& __t1, _Tuple2&& __t2, _Tuples&&… __tuples)
-> tuple_cat(tuple_cat(std::forward<_Tuple1>(__t1), std::forward<_Tuple2>(__t2)), 
			std::forward<_Tuples&&>(__tuples)…)
{ tuple_cat(tuple_cat(std::forward<_Tuple1>(__t1), std::forward<_Tuple2>(__t2)), 
		    std::forward<_Tuples&&>(__tuples)…); }

I imagine that first return type unfortunately isn't valid, but it shouldn't be hard to glue together the list of template arguments.

Chris


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]