public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/20599] variadic template support
       [not found] <bug-20599-365@http.gcc.gnu.org/bugzilla/>
@ 2006-09-12 15:36 ` bkoz at gcc dot gnu dot org
  2006-09-12 15:51 ` pcarlini at suse dot de
                   ` (13 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: bkoz at gcc dot gnu dot org @ 2006-09-12 15:36 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from bkoz at gcc dot gnu dot org  2006-09-12 15:36 -------

See:
http://www.osl.iu.edu/~dgregor/cpp/variadic-templates.html


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20599


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug c++/20599] variadic template support
       [not found] <bug-20599-365@http.gcc.gnu.org/bugzilla/>
  2006-09-12 15:36 ` [Bug c++/20599] variadic template support bkoz at gcc dot gnu dot org
@ 2006-09-12 15:51 ` pcarlini at suse dot de
  2006-09-12 18:27 ` doug dot gregor at gmail dot com
                   ` (12 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: pcarlini at suse dot de @ 2006-09-12 15:51 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from pcarlini at suse dot de  2006-09-12 15:50 -------
Then the real issue maybe is the following: what are we going to do vs C++0x
features? Shall we set-up the compiler switch for it (-std=c++0x?) and start
adding things? Or people believe it's too early? Maybe a good compromise would
be wait for inclusion in the draft, to wit before C++0x (but later than now for
variadic templates, for example)?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20599


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug c++/20599] variadic template support
       [not found] <bug-20599-365@http.gcc.gnu.org/bugzilla/>
  2006-09-12 15:36 ` [Bug c++/20599] variadic template support bkoz at gcc dot gnu dot org
  2006-09-12 15:51 ` pcarlini at suse dot de
@ 2006-09-12 18:27 ` doug dot gregor at gmail dot com
  2006-09-12 18:29 ` pinskia at gcc dot gnu dot org
                   ` (11 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: doug dot gregor at gmail dot com @ 2006-09-12 18:27 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from doug dot gregor at gmail dot com  2006-09-12 18:27 -------
It's a chicken-and-egg problem. Nobody on the committee wants to standardize
anything that isn't "existing practice," but we only want to accept patches for
features that have been written into the current working draft. How will C++0x
ever move forward?

GCC is uniquely situated to lead the way to C++0x. Our support for C++03 is
excellent, and the code is open and (relatively) accessible to experimenters.
There are patches "out there" for rvalue references, decltype, variadic
templates, and concepts, among other things. If the patch is ready, and we
think the feature is worth pursuing, we should accept the patch. Our acceptance
allows greater experimentation with and understanding of new ideas within the
C++ community and how they interact, and will improve the C++0x language as a
whole. Of course, it also means that GCC will have one of the most mature
implementations of the upcoming C++0x features once C++0x is finally written in
stone.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20599


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug c++/20599] variadic template support
       [not found] <bug-20599-365@http.gcc.gnu.org/bugzilla/>
                   ` (2 preceding siblings ...)
  2006-09-12 18:27 ` doug dot gregor at gmail dot com
@ 2006-09-12 18:29 ` pinskia at gcc dot gnu dot org
  2006-09-12 20:30 ` pcarlini at suse dot de
                   ` (10 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-09-12 18:29 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from pinskia at gcc dot gnu dot org  2006-09-12 18:29 -------
Suspending untill this is accepted.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |SUSPENDED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20599


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug c++/20599] variadic template support
       [not found] <bug-20599-365@http.gcc.gnu.org/bugzilla/>
                   ` (3 preceding siblings ...)
  2006-09-12 18:29 ` pinskia at gcc dot gnu dot org
@ 2006-09-12 20:30 ` pcarlini at suse dot de
  2006-09-13  6:20 ` bkoz at gcc dot gnu dot org
                   ` (9 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: pcarlini at suse dot de @ 2006-09-12 20:30 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from pcarlini at suse dot de  2006-09-12 20:30 -------
For the record, personally and for what is worth my personal opinion in the
compiler area, I have nothing against adding to the compiler -std=c++0x and
start adding things, in general. I'm also finding a little "adventurous" adding
complex features which are not reasonably likely (not my call assessing that)
to be accepted for the next standard. If someone is interested in knowing my
opinion, I would certainly be in favor of rvalue references and concepts, a tad
less for variadic templates.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20599


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug c++/20599] variadic template support
       [not found] <bug-20599-365@http.gcc.gnu.org/bugzilla/>
                   ` (4 preceding siblings ...)
  2006-09-12 20:30 ` pcarlini at suse dot de
@ 2006-09-13  6:20 ` bkoz at gcc dot gnu dot org
  2006-09-15  8:40 ` rguenth at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: bkoz at gcc dot gnu dot org @ 2006-09-13  6:20 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from bkoz at gcc dot gnu dot org  2006-09-13 06:19 -------

For the record, I'm strongly in favor of variadic templates. Key parts of TR1
(tuple, functional) necessitate some kind of compiler support in order to have
full implementations: the current limits on tuple size are an embarrasment. The
current implementation strategies for these library elements are highly complex
and far too pre-processor slap-happy for my comfort or taste.

As these parts of TR1 are already (as of Berlin) part of C++0X, I think it
behooves the C++ community to "get real" about robust solutions.

I think starting -std=c++0x is a great idea.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20599


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug c++/20599] variadic template support
       [not found] <bug-20599-365@http.gcc.gnu.org/bugzilla/>
                   ` (5 preceding siblings ...)
  2006-09-13  6:20 ` bkoz at gcc dot gnu dot org
@ 2006-09-15  8:40 ` rguenth at gcc dot gnu dot org
  2006-09-25  3:38 ` gdr at integrable-solutions dot net
                   ` (7 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2006-09-15  8:40 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from rguenth at gcc dot gnu dot org  2006-09-15 08:39 -------
I second that.  In addition to that I would welcome a warning for current C++
if I use keywords that are reserved in C++0x.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20599


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug c++/20599] variadic template support
       [not found] <bug-20599-365@http.gcc.gnu.org/bugzilla/>
                   ` (6 preceding siblings ...)
  2006-09-15  8:40 ` rguenth at gcc dot gnu dot org
@ 2006-09-25  3:38 ` gdr at integrable-solutions dot net
  2006-09-25  3:46 ` fang at csl dot cornell dot edu
                   ` (6 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: gdr at integrable-solutions dot net @ 2006-09-25  3:38 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from gdr at integrable-solutions dot net  2006-09-25 03:38 -------
Subject: Re:  variadic template support

"pcarlini at suse dot de" <gcc-bugzilla@gcc.gnu.org> writes:

| For the record, personally and for what is worth my personal opinion
| in the compiler area, I have nothing against adding to the compiler
| -std=c++0x 

We should have -std=c++2003 and -std=c++0x.  However, care must be
exercise about what is included in both options.

-- Gaby


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20599


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug c++/20599] variadic template support
       [not found] <bug-20599-365@http.gcc.gnu.org/bugzilla/>
                   ` (7 preceding siblings ...)
  2006-09-25  3:38 ` gdr at integrable-solutions dot net
@ 2006-09-25  3:46 ` fang at csl dot cornell dot edu
  2006-09-25 13:00 ` pcarlini at suse dot de
                   ` (5 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: fang at csl dot cornell dot edu @ 2006-09-25  3:46 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #10 from fang at csl dot cornell dot edu  2006-09-25 03:46 -------
Subject: Re:  variadic template support

> | For the record, personally and for what is worth my personal opinion
> | in the compiler area, I have nothing against adding to the compiler
> | -std=c++0x
>
> We should have -std=c++2003 and -std=c++0x.  However, care must be
> exercise about what is included in both options.
>
> -- Gaby

So what will "-ansi -pedantic-errors" use?  c++98, 2003, or 0x?

Fang


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20599


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug c++/20599] variadic template support
       [not found] <bug-20599-365@http.gcc.gnu.org/bugzilla/>
                   ` (8 preceding siblings ...)
  2006-09-25  3:46 ` fang at csl dot cornell dot edu
@ 2006-09-25 13:00 ` pcarlini at suse dot de
  2007-03-10  1:59 ` dgregor at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: pcarlini at suse dot de @ 2006-09-25 13:00 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #11 from pcarlini at suse dot de  2006-09-25 13:00 -------
(In reply to comment #10)
> > We should have -std=c++2003 and -std=c++0x.  However, care must be
> > exercise about what is included in both options.
> >
> > -- Gaby
> 
> So what will "-ansi -pedantic-errors" use?  c++98, 2003, or 0x?

I think we should simply learn from the C front-end, thus C89 vs C99, etc.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20599


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug c++/20599] variadic template support
       [not found] <bug-20599-365@http.gcc.gnu.org/bugzilla/>
                   ` (9 preceding siblings ...)
  2006-09-25 13:00 ` pcarlini at suse dot de
@ 2007-03-10  1:59 ` dgregor at gcc dot gnu dot org
  2007-03-10  2:02 ` dgregor at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: dgregor at gcc dot gnu dot org @ 2007-03-10  1:59 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #12 from dgregor at gcc dot gnu dot org  2007-03-10 01:59 -------
Subject: Bug 20599

Author: dgregor
Date: Sat Mar 10 01:58:58 2007
New Revision: 122788

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=122788
Log:
2007-03-09  Douglas Gregor  <doug.gregor@gmail.com>

        PR c++/20599
        * typeck.c (check_return_expr): Check for bare parameter packs.
        (comptypes): Compare template parameter packs and
        type pack expansions.
        * decl.c (grokdeclarator): Deal with the declaration of function
        parameter packs.
        (grokparms): Verify that the (optional) function parameter pack is
        at the end of the parameter list.
        (xref_basetypes): Handle pack expansions in the base class.
        (cp_tree_node_structure): Handle ARGUMENT_PACK_SELECT.
        * cp-tree.def (TYPE_ARGUMENT_PACK): New.
        (NONTYPE_ARGUMENT_PACK): New.
        (TYPE_PACK_EXPANSION): New.
        (EXPR_PACK_EXPANSION): New.
        (ARGUMENT_PACK_SELECT): New.
        * cp-objcp-common.c (cp_tree_size): Compute size of
        (NON)TYPE_ARGUMENT_PACK, (TYPE|EXPR)_PACK_EXPANSION, and
        ARGUMENT_PACK_SELECT.
        * error.c (dump_template_argument): Print template argument packs.
        (dump_template_argument_list): Ditto.
        (dump_template_parameter): Dump `...' for template type parameter
        packs.
        (dump_type): Dump TYPE_PACK_EXPANSION nodes.
        (dump_parameters): Print function parameter packs.
        (dump_template_parms): Print template argument packs.
        (dump_expr): Dump EXPR_PACK_EXPANSION nodes.
        (maybe_warn_variadic_templates): New.
        * operators.def: Add ellipsis operator for EXPR_PACK_EXPANSION.
        * tree.c (cp_walk_subtrees): Walk BASELINK, TYPE_ARGUMENT_PACK,
        NONTYPE_ARGUMENT_PACK, TYPE_PACK_EXPANSION, EXPR_PACK_EXPANSION,
        CAST_EXPR. 
        * mangle.c (write_type): Mangle TYPE_PACK_EXPANSION.
        (write_template_arg): Write argument packs as separate arguments.
        * cp-tree.h (struct template_parm_index_s): Add flag that
        indicates that the template parameter is actually a parameter
        pack.
        (struct tree_argument_pack_select): New.
        (enum cp_tree_node_structure_enum): Add TS_CP_ARGUMENT_PACK_SELECT.
        (union lang_tree_node): Add argument_pack_select.
        (FUNCTION_PARAMETER_PACK_P): New.
        (PACK_EXPANSION_P): New.
        (PACK_EXPANSION_PATTERN): New.
        (SET_PACK_EXPANSION_PATTERN): New.
        (PACK_EXPANSION_PARAMETER_PACKS): New.
        (ARGUMENT_PACK_P): New.
        (ARGUMENT_PACK_ARGS): New.
        (SET_ARGUMENT_PACK_ARGS): New.
        (ARGUMENT_PACK_INCOMPLETE_P): New.
        (ARGUMENT_PACK_EXPLICIT_ARGS): New.
        (TEMPLATE_PARM_PARAMETER_PACK): New.
        (TEMPLATE_TYPE_PARAMETER_PACK): New.
        (ARGUMENT_PACK_SELECT_FROM_PACK): New.
        (ARGUMENT_PACK_SELECT_INDEX): New.
        (ARGUMENT_PACK_SELECT_ARG): New.
        (struct cp_declarator): Add parameter_pack_p flag.
        (maybe_warn_variadic_templates): Declare.
        (process_template_parm): Add bool parameter IS_PARAMETER_PACK, to
        indicate a template parameter pack. 
        (uses_parameter_packs): Declare.
        (template_parameter_pack_p): Declare.
        (template_parms_variadic_p): Declare.
        (make_pack_expansion): Declare.
        (check_for_bare_parameter_packs): Declare.
        * cxx-pretty-print.c (pp_cxx_unary_expression): Print
        sizeof... expressions. 
        (pp_cxx_expression): Print pack expansions and non-type argument
        packs.
        (pp_cxx_exception_specification): Print pack expansions. 
        (pp_cxx_direct_declarator): Print ellipsis for parameter packs.
        (pp_cxx_ctor_initializer): Print pack expansions.
        (pp_cxx_type_id): Print pack expansions.
        (pp_cxx_template_argument_list): Print argument packs.
        (pp_cxx_template_parameter): Print ellipsis for template parameter
        packs.
        * pt.c (comp_template_parms): Compare template parameter packs.
        (template_parameter_pack_p): New.
        (template_parms_variadic_p): New.
        (template_args_variadic_p): New.
        (make_ith_pack_parameter_name): New.
        (struct find_parameter_pack_data): New.
        (find_parameter_packs_r): New.
        (uses_parameter_packs): New.
        (make_pack_expansion): New.
        (check_for_bare_parameter_packs): New.
        (expand_template_argument_pack): New.
        (reduce_template_parm_level): Propagate parameter pack flag.
        (process_template_parm): Add is_parameter_pack parameter to state
        when the parameter is actually a parameter pack. Create template
        parameter packs when is_parameter_pack is true.
        (current_template_args): The argument for a template parameter
        pack is an argument pack containing a single pack expansion.
        (process_partial_specialization): When checking that non-type
        argument expressions do not involve template parameters, loop over
        the arguments in argument packs separately.
        (push_template_decl_real): Check that the type of the declaration
        does not have any bare parameter packs. Check that primary
        templates have no more than one parameter pack, and that it comes
        at the end of the template parameter list.
        (convert_template_argument): Handle coercions for pack expansion
        expressions by coercing the pattern then rebuilding the expansion.
        (coerce_template_parms): When coercing the arguments for a
        variadic template, pack "extra" arguments into an argument pack.
        (coerce_template_template_parms): Cannot coerce between parameter
        packs and non-pack parameters.
        (template_args_equal): Compare PACK_EXPANSION_P expressions.
        (comp_template_args): Expand all template arguments packs before
        comparing template argument lists.
        (mangle_class_name_for_template): Make argument packs as separate
        template arguments.
        (for_each_template_parm_r): No need to handle BASELINK. 
        (instantiate_class_template): Handle pack expansions in the base
        class list.
        (tsubst_pack_expansion): New.
        (tsubst_template_args): Handle substitutions of argument packs and
        pack expansion into template argument lists.
        (tsubst_decl): Expand function parameter packs into separate
        function parameters.
        (tsubst_arg_types): Expand a type pack expansion into separate
        argument types.
        (tsubst_exception_specification): Handle pack expansions in
        exception specifiers.
        (tsubst): See through ARGUMENT_PACK_SELECT arguments when 
        replacing a template parameter with its argument. If we encounter
        a substitution for an argument pack, just return the parameter
        itself. 
        (tsubst_copy): sizeof(X...) returns the number of elements in
        parameter pack X.  See through ARGUMENT_PACK_SELECT when the
        PARM_DECL is a parameter pack.
        (tsubst_expr): Expression pack expansions and argument packs
        cannot show up here; they will all be handled through function
        calls, sizeof, and template argument lists.
        (tsubst_copy_and_build): sizeof(X...) returns the number of
        elements in parameter pack X.  Handle pack expansions in TREE_LIST
        and CONSTRUCTOR nodes.
        (fn_type_unification): Handle "incomplete" explicit template
        argument lists that specify some of the arguments for a template
        parameter pack.
        (type_unification_real): Unify arguments against pack expansions.
        (template_parm_level_and_index): New, helper function.
        (unify_pack_expansion): New.
        (unify): Unify argument packs on an argument-by-argument basis,
        handling variadic argument packs as well.
        (more_specialized_fn): Handle unification of function parameter
        packs. All things being equal, prefer non-variadic function
        templates to variadic function templates.
        (more_specialized_class): Prefer the variadic class template
        partial specialization that binds fewer arguments to a parameter
        pack.
        (regenerate_decl_from_template): Expand function parameter packs
        into separate parameters.
        (instantiate_decl): Ditto.
        (tsubst_initializer_list): Handle pack expansions for base-class
        initializers.
        (dependent_type_p_r): Determine dependent types in argument packs
        and pack expansions.
        (value_dependent_expression_p): Determine value-dependence of
        non-type argument packs.
        (dependent_template_arg_p): Handle argument packs.
        * semantics.c (finish_cond): Check for bare parameter packs.
        (finish_expr_stmt): Ditto.
        (finish_for_expr): Ditto.
        (finish_switch_cond): Ditto.
        (finish_mem_initializers): Ditto.
        * name-lookup.c (arg_assoc_type): Handle pack expansions and
        argument packs.
        * decl2.c (cp_build_parm_decl): Mark function parameter packs.
        * parser.c (make_declarator): Declarator is not an expansion.
        (make_pointer_declarator): Transfer parameter pack flag to outer
        declarator.
        (make_reference_declarator): Ditto.
        (make_ptrmem_declarator): Ditto.
        (make_call_declarator): Ditto.
        (make_array_declarator): Ditto.
        (cp_parser_postfix_expression): Allow pack expansion expressions
        in the argument list for a call expression.
        (cp_parser_parenthesized_expression_list): Add new parameter
        ALLOW_EXPANSION_P. When true, parse the ellipsis to mean "expand
        into separate arguments."
        (cp_parser_new_placement): Allow pack expansion expressions.
        (cp_parser_new_initializer): Ditto.
        (cp_parser_mem_initializer_list): Allow ellipsis to create a
        base-class initializer expansion.
        (cp_parser_mem_initializer): Ditto.
        (cp_parser_template_parameter_list): Keep track of whether the
        template parameter is a template parameter pack.
        (cp_parser_template_parameter): Parse the ellipsis to indicate a
        template parameter pack.
        (cp_parser_type_parameter): Ditto.
        (cp_parser_template_argument_list): Parse the ellipsis to indicate
        a pack expansion.
        (cp_parser_direct_declarator): Parse the ellipsis to indicate that
        this declarator is a parameter pack.
        (cp_parser_parameter_declaration): The ellipsis does not end the
        parameter declaration, because it might be a parameter pack. Parse
        the ellipsis to indicate a parameter pack.
        (cp_parser_initializer): Allow pack expansions.
        (cp_parser_initializer_list): Allow ellipsis to create an
        initializer expansion.
        (cp_parser_base_clause): Allow ellipsis to create a base specifier
        expansion.
        (cp_parser_type_id_list): Allow ellipsis to create an exception
        specifier expansion.
        (cp_parser_attribute_list): Don't allow pack expansions.
        (cp_parser_functional_cast): Allow pack expansions.
        (cp_parser_sizeof_operand): Allow ellipsis following "sizeof" to
        compute the length of a parameter pack.
        (cp_parser_next_token_ends_template_argument_p): An ellipsis can
        end a template argument.
        * tree.c (cp_walk_subtrees): Walk BASELINK, TYPE_ARGUMENT_PACK,
        NONTYPE_ARGUMENT_PACK, TYPE_PACK_EXPANSION, EXPR_PACK_EXPANSION,
        CAST_EXPR. 

Modified:
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/cp-objcp-common.c
    trunk/gcc/cp/cp-tree.def
    trunk/gcc/cp/cp-tree.h
    trunk/gcc/cp/cxx-pretty-print.c
    trunk/gcc/cp/decl.c
    trunk/gcc/cp/decl2.c
    trunk/gcc/cp/error.c
    trunk/gcc/cp/mangle.c
    trunk/gcc/cp/name-lookup.c
    trunk/gcc/cp/operators.def
    trunk/gcc/cp/parser.c
    trunk/gcc/cp/pt.c
    trunk/gcc/cp/semantics.c
    trunk/gcc/cp/tree.c
    trunk/gcc/cp/typeck.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20599


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug c++/20599] variadic template support
       [not found] <bug-20599-365@http.gcc.gnu.org/bugzilla/>
                   ` (10 preceding siblings ...)
  2007-03-10  1:59 ` dgregor at gcc dot gnu dot org
@ 2007-03-10  2:02 ` dgregor at gcc dot gnu dot org
  2007-03-12  6:22 ` fang at csl dot cornell dot edu
                   ` (2 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: dgregor at gcc dot gnu dot org @ 2007-03-10  2:02 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #13 from dgregor at gcc dot gnu dot org  2007-03-10 02:02 -------
Subject: Bug 20599

Author: dgregor
Date: Sat Mar 10 02:01:49 2007
New Revision: 122789

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=122789
Log:
2007-03-09  Douglas Gregor  <doug.gregor@gmail.com>

        PR c++/20599
        * g++.dg/cpp0x/variadic-bind.C: New.
        * g++.dg/cpp0x/variadic-function.C: New.
        * g++.dg/cpp0x/variadic-mem_fn.C: New.
        * g++.dg/cpp0x/variadic-tuple.C: New.
        * g++.dg/cpp0x/variadic1.C: New.
        * g++.dg/cpp0x/variadic2.C: New.
        * g++.dg/cpp0x/variadic3.C: New.
        * g++.dg/cpp0x/variadic4.C: New.
        * g++.dg/cpp0x/variadic5.C: New.
        * g++.dg/cpp0x/variadic6.C: New.
        * g++.dg/cpp0x/variadic7.C: New.
        * g++.dg/cpp0x/variadic8.C: New.
        * g++.dg/cpp0x/variadic9.C: New.
        * g++.dg/cpp0x/variadic10.C: New.
        * g++.dg/cpp0x/variadic11.C: New.
        * g++.dg/cpp0x/variadic12.C: New.
        * g++.dg/cpp0x/variadic13.C: New.
        * g++.dg/cpp0x/variadic14.C: New.
        * g++.dg/cpp0x/variadic15.C: New.
        * g++.dg/cpp0x/variadic16.C: New.
        * g++.dg/cpp0x/variadic17.C: New.
        * g++.dg/cpp0x/variadic18.C: New.
        * g++.dg/cpp0x/variadic19.C: New.
        * g++.dg/cpp0x/variadic20.C: New.
        * g++.dg/cpp0x/variadic21.C: New.
        * g++.dg/cpp0x/variadic22.C: New.
        * g++.dg/cpp0x/variadic23.C: New.
        * g++.dg/cpp0x/variadic24.C: New.
        * g++.dg/cpp0x/variadic25.C: New.
        * g++.dg/cpp0x/variadic26.C: New.
        * g++.dg/cpp0x/variadic27.C: New.
        * g++.dg/cpp0x/variadic28.C: New.
        * g++.dg/cpp0x/variadic29.C: New.
        * g++.dg/cpp0x/variadic30.C: New.
        * g++.dg/cpp0x/variadic31.C: New.
        * g++.dg/cpp0x/variadic32.C: New.
        * g++.dg/cpp0x/variadic33.C: New.
        * g++.dg/cpp0x/variadic34.C: New.
        * g++.dg/cpp0x/variadic35.C: New.
        * g++.dg/cpp0x/variadic36.C: New.
        * g++.dg/cpp0x/variadic37.C: New.
        * g++.dg/cpp0x/variadic38.C: New.
        * g++.dg/cpp0x/variadic39.C: New.
        * g++.dg/cpp0x/variadic40.C: New.
        * g++.dg/cpp0x/variadic41.C: New.
        * g++.dg/cpp0x/variadic42.C: New.
        * g++.dg/cpp0x/variadic43.C: New.
        * g++.dg/cpp0x/variadic44.C: New.
        * g++.dg/cpp0x/variadic45.C: New.
        * g++.dg/cpp0x/variadic46.C: New.
        * g++.dg/cpp0x/variadic47.C: New.
        * g++.dg/cpp0x/variadic48.C: New.
        * g++.dg/cpp0x/variadic49.C: New.
        * g++.dg/cpp0x/variadic50.C: New.
        * g++.dg/cpp0x/variadic51.C: New.
        * g++.dg/cpp0x/variadic52.C: New.
        * g++.dg/cpp0x/variadic53.C: New.
        * g++.dg/cpp0x/variadic54.C: New.
        * g++.dg/cpp0x/variadic55.C: New.
        * g++.dg/cpp0x/variadic56.C: New.
        * g++.dg/cpp0x/variadic57.C: New.
        * g++.dg/cpp0x/variadic58.C: New.
        * g++.dg/cpp0x/variadic59.C: New.
        * g++.dg/cpp0x/variadic60.C : New.
        * g++.dg/cpp0x/variadic61.C : New.
        * g++.dg/cpp0x/variadic62.C : New.
        * g++.dg/cpp0x/variadic63.C : New.
        * g++.dg/cpp0x/variadic64.C : New.
        * g++.dg/cpp0x/variadic65.C : New.
        * g++.dg/cpp0x/variadic66.C : New.
        * g++.dg/cpp0x/variadic67.C : New.
        * g++.dg/cpp0x/variadic68.C : New.      
        * g++.dg/cpp0x/variadic69.C : New.
        * g++.dg/cpp0x/variadic70.C : New.
        * g++.dg/cpp0x/variadic71.C : New.
        * g++.dg/cpp0x/variadic72.C : New.
        * g++.dg/cpp0x/variadic73.C : New.
        * g++.dg/cpp0x/variadic74.C : New.
        * g++.dg/cpp0x/variadic75.C : New.
        * g++.dg/cpp0x/variadic-ex1.C : New.
        * g++.dg/cpp0x/variadic-ex2.C : New.
        * g++.dg/cpp0x/variadic-ex3.C : New.
        * g++.dg/cpp0x/variadic-ex4.C : New.
        * g++.dg/cpp0x/variadic-ex5.C : New.
        * g++.dg/cpp0x/variadic-ex6.C : New.
        * g++.dg/cpp0x/variadic-ex7.C : New.
        * g++.dg/cpp0x/variadic-ex8.C : New.
        * g++.dg/cpp0x/variadic-ex9.C : New.
        * g++.dg/cpp0x/variadic-ex10.C : New.
        * g++.dg/cpp0x/variadic-ex11.C : New.
        * g++.dg/cpp0x/variadic-ex12.C : New.
        * g++.dg/cpp0x/variadic-ex13.C : New.
        * g++.dg/cpp0x/variadic-ex14.C : New.

Added:
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic-bind.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic-ex1.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic-ex10.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic-ex11.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic-ex12.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic-ex13.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic-ex14.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic-ex2.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic-ex3.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic-ex4.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic-ex5.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic-ex6.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic-ex7.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic-ex8.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic-ex9.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic-function.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic-mem_fn.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic-tuple.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic1.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic10.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic11.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic12.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic13.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic14.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic15.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic16.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic17.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic18.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic19.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic2.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic20.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic21.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic22.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic23.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic24.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic25.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic26.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic27.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic28.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic29.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic3.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic30.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic31.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic32.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic33.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic34.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic35.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic36.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic37.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic38.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic39.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic4.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic40.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic41.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic42.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic43.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic44.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic45.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic46.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic47.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic48.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic49.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic5.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic50.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic51.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic52.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic53.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic54.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic55.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic56.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic57.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic58.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic59.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic6.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic60.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic61.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic62.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic63.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic64.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic65.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic66.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic67.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic68.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic69.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic7.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic70.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic71.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic72.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic73.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic74.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic75.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic8.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic9.C
Modified:
    trunk/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20599


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug c++/20599] variadic template support
       [not found] <bug-20599-365@http.gcc.gnu.org/bugzilla/>
                   ` (11 preceding siblings ...)
  2007-03-10  2:02 ` dgregor at gcc dot gnu dot org
@ 2007-03-12  6:22 ` fang at csl dot cornell dot edu
  2007-03-12  9:26 ` pcarlini at suse dot de
  2007-03-28 14:30 ` dgregor at gcc dot gnu dot org
  14 siblings, 0 replies; 16+ messages in thread
From: fang at csl dot cornell dot edu @ 2007-03-12  6:22 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #14 from fang at csl dot cornell dot edu  2007-03-12 06:22 -------
For reference, is this the latest draft of the variadic template proposal?  
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2080.pdf


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20599


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug c++/20599] variadic template support
       [not found] <bug-20599-365@http.gcc.gnu.org/bugzilla/>
                   ` (12 preceding siblings ...)
  2007-03-12  6:22 ` fang at csl dot cornell dot edu
@ 2007-03-12  9:26 ` pcarlini at suse dot de
  2007-03-28 14:30 ` dgregor at gcc dot gnu dot org
  14 siblings, 0 replies; 16+ messages in thread
From: pcarlini at suse dot de @ 2007-03-12  9:26 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #15 from pcarlini at suse dot de  2007-03-12 09:26 -------
Actually in the latest mailing there are two new papers, N2151 and N2152.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20599


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug c++/20599] variadic template support
       [not found] <bug-20599-365@http.gcc.gnu.org/bugzilla/>
                   ` (13 preceding siblings ...)
  2007-03-12  9:26 ` pcarlini at suse dot de
@ 2007-03-28 14:30 ` dgregor at gcc dot gnu dot org
  14 siblings, 0 replies; 16+ messages in thread
From: dgregor at gcc dot gnu dot org @ 2007-03-28 14:30 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #16 from dgregor at gcc dot gnu dot org  2007-03-28 15:30 -------
This functionality is part of the experimental C++0x mode, and is under control
of the -std=gnu++0x flag in the mainline (4.3.0) compiler.


-- 

dgregor at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|SUSPENDED                   |RESOLVED
         Resolution|                            |FIXED
   Target Milestone|---                         |4.3.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20599


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bug c++/20599] variadic template support
  2005-03-23  6:01 [Bug c++/20599] New: " bkoz at gcc dot gnu dot org
@ 2005-03-23 15:13 ` pinskia at gcc dot gnu dot org
  0 siblings, 0 replies; 16+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-03-23 15:13 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-03-23 15:13 -------
Confirmed.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
   Last reconfirmed|0000-00-00 00:00:00         |2005-03-23 15:13:36
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20599


^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2007-03-28 14:30 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <bug-20599-365@http.gcc.gnu.org/bugzilla/>
2006-09-12 15:36 ` [Bug c++/20599] variadic template support bkoz at gcc dot gnu dot org
2006-09-12 15:51 ` pcarlini at suse dot de
2006-09-12 18:27 ` doug dot gregor at gmail dot com
2006-09-12 18:29 ` pinskia at gcc dot gnu dot org
2006-09-12 20:30 ` pcarlini at suse dot de
2006-09-13  6:20 ` bkoz at gcc dot gnu dot org
2006-09-15  8:40 ` rguenth at gcc dot gnu dot org
2006-09-25  3:38 ` gdr at integrable-solutions dot net
2006-09-25  3:46 ` fang at csl dot cornell dot edu
2006-09-25 13:00 ` pcarlini at suse dot de
2007-03-10  1:59 ` dgregor at gcc dot gnu dot org
2007-03-10  2:02 ` dgregor at gcc dot gnu dot org
2007-03-12  6:22 ` fang at csl dot cornell dot edu
2007-03-12  9:26 ` pcarlini at suse dot de
2007-03-28 14:30 ` dgregor at gcc dot gnu dot org
2005-03-23  6:01 [Bug c++/20599] New: " bkoz at gcc dot gnu dot org
2005-03-23 15:13 ` [Bug c++/20599] " pinskia at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).