Re: Public imports with D interface files?

2011-09-03 Thread David Nadlinger
Are you specifying std_ext/typetuple.di or whatever it is called when 
compiling the main module? The public import probably triggers creation 
of a module constructor as it really creates aliases for the symbols 
from the imported module.


David


On 9/4/11 3:17 AM, Sean Eskapp wrote:

I'm compiling a very simple D interface file:

 module std_ext.typetuple;

 public import std.typetuple

 class TypeArray(T...)
 {
 }

Compiling it as such:
 dmd -debug -unittest -D -Dddocs -w -H -o- std_ext/typetuple.d

And including it as such:

 import std_ext.typetuple;

 void main()
 {
 TypeArray!(int, double) blah;
 }

I get a linker error Symbol Undefined _D7std_ext9typetuple12__ModuleInfoZ

Removing the public import removes this error. How can I fix this?




Re: Public imports with D interface files?

2011-09-03 Thread Sean Eskapp
I wasn't including it on the command line; I thought I didn't need to. That 
fixed
it, thanks!

== Quote from David Nadlinger (s...@klickverbot.at)'s article
 Are you specifying std_ext/typetuple.di or whatever it is called when
 compiling the main module? The public import probably triggers creation
 of a module constructor as it really creates aliases for the symbols
 from the imported module.
 David
 On 9/4/11 3:17 AM, Sean Eskapp wrote:
  I'm compiling a very simple D interface file:
 
   module std_ext.typetuple;
 
   public import std.typetuple
 
   class TypeArray(T...)
   {
   }
 
  Compiling it as such:
   dmd -debug -unittest -D -Dddocs -w -H -o- std_ext/typetuple.d
 
  And including it as such:
 
   import std_ext.typetuple;
 
   void main()
   {
   TypeArray!(int, double) blah;
   }
 
  I get a linker error Symbol Undefined _D7std_ext9typetuple12__ModuleInfoZ
 
  Removing the public import removes this error. How can I fix this?