(copied from an e-mail)
Probably I have misunderstood linker error then. This simple snippet fails:

---
import core.stdc.stdio;

template Value(int val)
{
    enum Value = val;
}
// Plain enum Value = 42 works

extern(C)
int main()
{
    printf("%d", Value!42);
    return 0;
}
---
$ dmd -betterC -defaultlib= tmp.d
tmp.o: In function `_D3tmp7__arrayZ':
tmp.d:(.text._D3tmp7__arrayZ+0xd): undefined reference to `_D3tmp12__ModuleInfoZ' tmp.d:(.text._D3tmp7__arrayZ+0x16): undefined reference to `_d_array_bounds'
tmp.o: In function `_D3tmp8__assertFiZv':
tmp.d:(.text._D3tmp8__assertFiZv+0xd): undefined reference to `_D3tmp12__ModuleInfoZ' tmp.d:(.text._D3tmp8__assertFiZv+0x16): undefined reference to `_d_assertm'
tmp.o: In function `_D3tmp15__unittest_failFiZv':
tmp.d:(.text._D3tmp15__unittest_failFiZv+0xd): undefined reference to `_D3tmp12__ModuleInfoZ' tmp.d:(.text._D3tmp15__unittest_failFiZv+0x16): undefined reference to `_d_unittestm'
collect2: error: ld returned 1 exit status
---

What is the issue then?

Reply via email to