On 11/30/2015 2:26 AM, Ola Fosheim Grøstad wrote:
I wish someone would shed som light on this as inline namespaces is what
libraries will use in the future in order to do versioning and  target different
architectures, the one marked "inline" is made active and can be directly
accessed through "X::decl" or "X::version1::decl" in c++:

namespace X {
      inline namespace version1 {
           decl....
      }
      namespace version2 {
           decl....
      }
}

Seems to me that D needs to embed clang and that the current bindings-only
approach will not survive C++11 and later standards.


It'd be worthwhile to learn how D's name lookup system works before declaring it lame and insufficient:

  extern (C++, X) {
        extern (C++, version1) {
                enum e = 3;
        }
  }

  int x = e;
  int y = X.e;
  int z = X.version1.e;

compiles successfully.

Reply via email to