<div dir="ltr">Hi libc++ developers,<div><br></div><div>I'm having a problem compiling the following code:</div><div><br></div><div>Header (index.hpp):</div><div><br></div><div><div><font face="monospace, monospace">#ifndef INDEX_HPP_</font></div><div><font face="monospace, monospace">#define INDEX_HPP_</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">#include <algorithm></font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">namespace index {</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">class Index {</font></div><div><font face="monospace, monospace"> public:</font></div><div><font face="monospace, monospace">  Index();</font></div><div><font face="monospace, monospace">};</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">}</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">#endif // INDEX_HPP_</font></div></div><div><br></div><div>Source (index.cpp):</div><div><br></div><div><div><font face="monospace, monospace">#include "index.hpp"</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">namespace index {</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">Index::Index() {</font></div><div><font face="monospace, monospace">}</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">}</font></div></div><div><br></div><div>These are the errors I get:</div><div><br></div><div><div><font face="monospace, monospace">index.cpp:5:1: error: use of undeclared identifier 'Index'; did you mean '::index::Index'?</font></div><div><font face="monospace, monospace">Index::Index() {</font></div><div><font face="monospace, monospace">^~~~~</font></div><div><font face="monospace, monospace">::index::Index</font></div><div><font face="monospace, monospace">./index.hpp:8:7: note: '::index::Index' declared here</font></div><div><font face="monospace, monospace">class Index {</font></div><div><font face="monospace, monospace">      ^</font></div><div><font face="monospace, monospace">index.cpp:5:8: error: cannot define or redeclare 'Index' here because namespace 'index' does not enclose namespace 'Index'</font></div><div><font face="monospace, monospace">Index::Index() {</font></div><div><font face="monospace, monospace">~~~~~~~^</font></div><div><font face="monospace, monospace">2 errors generated.</font></div></div><div><br></div><div>This is my compile command:</div><div><font face="monospace, monospace">clang++ --stdlib=libc++ index.cpp</font><br></div><div><br></div><div>clang version:</div><div><div><font face="monospace, monospace">clang version 5.0.0 (tags/RELEASE_500/final)</font></div><div><font face="monospace, monospace">Target: x86_64-unknown-linux-gnu</font></div><div><font face="monospace, monospace">Thread model: posix</font></div><div><font face="monospace, monospace">InstalledDir: /usr/local/bin</font></div></div><div><br></div><div>libc++ version is today's trunk</div><div><br></div><div>System: Linux trusty64 3.16.0-55-generic #74~14.04.1-Ubuntu SMP Tue Nov 17 10:15:59 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux</div><div><br></div><div><br></div><div>If I don't include <algorithm> or if I change the name of the namespace to something other than "index", the code compiles.</div><div><br></div><div>Is this a libc++ bug?</div><div><br></div><div>Cheers,</div><div>Klemen</div></div>