www.digitalmars.com Home | Search | C & C++ | D | DMDScript | News Groups | index | prev | next
Archives

D Programming
D
D.gnu
digitalmars.D
digitalmars.D.bugs
digitalmars.D.dtl
digitalmars.D.ide
digitalmars.D.dwt
digitalmars.D.announce
digitalmars.D.learn
digitalmars.D.debugger

C/C++ Programming
c++
c++.announce
c++.atl
c++.beta
c++.chat
c++.command-line
c++.dos
c++.dos.16-bits
c++.dos.32-bits
c++.idde
c++.mfc
c++.rtl
c++.stl
c++.stl.hp
c++.stl.port
c++.stl.sgi
c++.stlsoft
c++.windows
c++.windows.16-bits
c++.windows.32-bits
c++.wxwindows

digitalmars.empire
digitalmars.DMDScript
electronics




digitalmars.D.bugs - [Issue 2010] New: Template tuples don't work in string mixins

↑ ↓ ← d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=2010

           Summary: Template tuples don't work in string mixins
           Product: D
           Version: 2.012
          Platform: PC
        OS/Version: Windows
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla digitalmars.com
        ReportedBy: bartosz relisoft.com


A variable-argument function works at runtime, but doesn't compile as a mixin:

mixin (declareAllFeatures ("a", "b", "c"));

string declareAllFeatures (T...)(T features)
{
        string [] arr = [];
        foreach (f; features)
        {
                arr ~= f;
        }
        return declareAllFeaturesArr (arr);
}

string declareAllFeaturesArr (string [] allFeatures)
{
        return "int x;";
}


-- 
Apr 18 2008
↑ ↓ → d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=2010





------- Comment #1 from bartosz relisoft.com  2008-04-18 18:08 -------
The order of declarations seems to matter, so here's the modified example and
the error message:

string declareAllFeaturesArr (string [] allFeatures)
{
    return "int x;";
}

string declareAllFeatures (T...)(T features)
{
    string [] arr = [];
    foreach (f; features)
    {
            arr ~= f;
    }
    return declareAllFeaturesArr (arr);
}

mixin (declareAllFeatures ("a", "b", "c"));

Error: cannot evaluate declareAllFeatures(&"a",&"b",&"c") at compile time


-- 
Apr 18 2008