On Wednesday, 20 January 2016 at 22:13:09 UTC, Walter Bright wrote:
You can always write a module that all it does is import a bunch of other modules, with a bunch of aliases which can be used to make those imports appear in another namespace:

   ----module core.stdcpp.vector----
   extern (C++, std) { struct vector { } }

   ----module core.stdcpp.string----
   extern (C++, std) { struct string { } }

   ----module stl------
   private import core.stdcpp.vector;
   private import core.stdcpp.string;
   ...
   extern (C++, std)
   {
      alias core.stdcpp.vector.std.vector vector;
      alias core.stdcpp.string.std.string string;
      ...
   }

   ---module user-----
   import stl;

   std.vector v;
   std.string s;

The thought of needing to do that for (potentially) every single symbol being imported is depressing. What happened to DRY?

Reply via email to