On 11/19/09 17:23, Jason Merrill wrote:
On 11/17/2009 09:36 AM, Larry Evans wrote:
Could g++ provide this feature? How hard would it be to implement.
It probably wouldn't be difficult to implement, but I'd want someone to
champion the extension with the C++ committee as well. Have you asked
Doug Gregor what he thinks?
Yes:
Hi Doug,
Your post:
http://groups.google.com/group/comp.std.c++/msg/40705c1e2a6f78f8
contains:
> 3) A guaranteed non-recursive way to access elements of parameter
> packs
> template<int N, class ... V> struct get_type
> {
> typedef v...@n type; // or implementation_defined<N,V...>::type -
> guaranteed linear
> };
> template<int N, class ... V> get_type<N,V...>::type get(V...v) {
> return ::implementation_defined<N>(v...);
> }
This is probably the most-requested feature for variadic templates,
and it never it made it because we never found a good, unambiguous
syntax.
Could you elaborate on why it's hard to find some unambiguous syntax?
For example, what would be wrong with the syntax:
get-nth-expansion-element:
expansion-pattern '...[' constant-expression ']'
shown in the following post to gmane.comp.gcc.devel:
http://thread.gmane.org/gmane.comp.gcc.devel/110252
TIA.
-regards,
Larry
I assume that omitting this functionality
was deliberate.
As noted in my quote of Doug's post to comp.std.c++, there
*might* be something ambiguous about:
expansion-pattern '...[' constant-expression ']'
I'm awaiting Doug's reply.
Jason