<div dir="auto">There is a ::index function in strings.h on some platforms that might be leaking into <algorithm>.</div><div class="gmail_extra"><br><div class="gmail_quote">On 29 Oct 2017 13:10, "Klemen Forstnerič via cfe-dev" <<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>> wrote:<br type="attribution"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><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>
<br>______________________________<wbr>_________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-dev</a><br>
<br></blockquote></div><br></div>