On Sun, 27 Apr 2014 12:54:51 -0700, Walter Bright wrote: > http://wiki.dlang.org/DIP61
I really like this. I think it is clean simple and a better approach then adding the namespace keyword. Plus when people come to D from C++ they wont misuse namespace. Since D has awesome module aliasing we don't have to worry to much about module/namespace conflicts. Though it would be interesting to alias the extern directly (if we cant already). alias lib1 = extern(C++, company.lib1) { .... }; My only concern is when libraries have extension libraries that add to the main libraries namespace. ie: big_library_everyone_loves_to_use.c++ namespace biglib { namespace core { ... } } small_helper_lib_a_few_people_use.c++ namespace biglib { void helper1() ... // I call 50 functions so you dont have to! namespace core() { ... } // I add extra special memory handlers } With the current DIP you have to combine the d/di files to merge the extern namespaces. Makes it hard to maintain these as separate libraries. Specially when your library has a lot of extension libs. Maybe someone can write a cleaver mixin for this problem. Also is there any plans on dealing with newing c++ memory? Having to add factories to all of the c++ libs feels a little goofy, but either way this DIP gets us a lot closer to C++/D bliss!