www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 15098] New: C++ nameslace problems

https://issues.dlang.org/show_bug.cgi?id=15098

          Issue ID: 15098
           Summary: C++ nameslace problems
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Windows
            Status: NEW
          Severity: enhancement
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: turkeyman gmail.com

Getting this error a lot:

  Error: namespace ud.kernel.kernel.ud conflicts with import
ud.kernel.kernel.ud at udKernel\src\ud\kernel\kernel.d(3)

This code:

  module ud.kernel.kernel;
  import ud.kernel.component;
  extern(C++, ud):
  class Kernel
  {
    ...
  }

It seems the problem is that the root of the D namespace is 'ud', but my C++
namespace is also 'ud', and this doesn't seem to be acceptable.

If I remove `ud.` from the D namespace, the errors stop.
I think this is valid code, there are no guarantees that my C++ namespace is
not the same as the root D namespace, infact it seems highly likely to me.

--
Sep 21 2015