Don <> changed:

           What    |Removed                     |Added
                 CC|                            |

--- Comment #4 from Don <> 2011-12-07 02:29:39 PST ---
There are two ways to fix this:
(1) Change the spec to define that (is == function) returns the non-variadic
(2) Create a '...' object inside the compiler, and allow it to be a member of a
tuple. Variadics are neither types nor expressions, nor symbols. Creates lots
of special cases all through the compiler.There are tricky examples like:

template baa(T...) {
    alias void function(T) a;  // OK, params are (char, ...)
    alias void function(T, ...) b; // illegal: (char, ..., ...)
    alias void function(T, int) c; // illegal: (char, ..., int)

alias baa!( is ( void function(char, ...) == function)).b baz;

And if we fix those problems, maybe we should allow this syntax:
alias baa!(char, ...).a foo;
because otherwise I don't know what to print when you do:
pragma(msg, T);
but then we have to make sure we can always distinguish variadic function
parameters from template variadics.

Is this issue important enough to justify (2) ?

Configure issuemail:
------- You are receiving this mail because: -------

Reply via email to