www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 1503] New: Type aliases and tuples of template instances

reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1503

           Summary: Type aliases and tuples of template instances
           Product: D
           Version: 1.021
          Platform: PC
        OS/Version: Windows
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla digitalmars.com
        ReportedBy: samukha voliacable.com


May be a duplicate of other tuple bugs.

template Foo(T)
{
    alias T Type;
}

template Foos(A...)
{
    alias A Foos;
}

alias Foos!(Foo!(int), Foo!(char)) foos;
foos[0].Type x = 20; // Fails
-----
Error: no identifier for declarator foos[0];

Works if a redundant typeof is added:
typeof(foos[0].Type) x = 20;


-- 
Sep 14 2007
next sibling parent reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1503


smjg iname.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |smjg iname.com
           Keywords|                            |rejects-valid





Please remember to assign keywords to bug reports.  To everybody reading this:
Please look through issues you've reported and check for missing keywords.


-- 
Sep 15 2007
parent Brad Roberts <braddr puremagic.com> writes:
d-bugmail puremagic.com wrote:
 http://d.puremagic.com/issues/show_bug.cgi?id=1503
 
 
 smjg iname.com changed:
 
            What    |Removed                     |Added
 ----------------------------------------------------------------------------
                  CC|                            |smjg iname.com
            Keywords|                            |rejects-valid
 
 
 
 

 Please remember to assign keywords to bug reports.  To everybody reading this:
 Please look through issues you've reported and check for missing keywords.
The keywords are nice to haves, but definitely not required. I wouldn't spend a lot of time doing this sort of post-bug filing fixup. Walter, speak up if you rely on them for prioritization, but I've never heard you mention them before. Later, Brad
Sep 15 2007
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1503




PDT ---
An extra alias can be added to stop the gap:

template Foo(T)
{
    alias T Type;
}

template Foos(A...)
{
    alias A Foos;
}

alias Foos!(Foo!(int), Foo!(char)) foos;
alias foos[0] foo;
foo.Type x = 20;

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Oct 21 2009
prev sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1503


Manuel König <manuelk89 gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |manuelk89 gmx.net
         Resolution|                            |DUPLICATE
         OS/Version|Windows                     |All



The typeof(foos[0].Type) x = 20; trick doesn't work for me, but aliasing the

declaration of the form

a[0].t x;

is possible because the parser does not accept that syntax, even when t is a
type. Your alias trick bypasses that limitation, that's why it works.

*** This issue has been marked as a duplicate of issue 3085 ***

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Oct 11 2010