[cfe-dev] [libc++] Is namespace "index" a special kind of a namespace in libc++?

Richard Smith via cfe-dev cfe-dev at lists.llvm.org
Sun Oct 29 13:14:55 PDT 2017

There is a ::index function in strings.h on some platforms that might be
leaking into <algorithm>.

On 29 Oct 2017 13:10, "Klemen Forstnerič via cfe-dev" <
cfe-dev at lists.llvm.org> wrote:

Hi libc++ developers,

I'm having a problem compiling the following code:

Header (index.hpp):

#ifndef INDEX_HPP_
#define INDEX_HPP_

#include <algorithm>

namespace index {

class Index {


#endif // INDEX_HPP_

Source (index.cpp):

#include "index.hpp"

namespace index {

Index::Index() {


These are the errors I get:

index.cpp:5:1: error: use of undeclared identifier 'Index'; did you mean
Index::Index() {
./index.hpp:8:7: note: '::index::Index' declared here
class Index {
index.cpp:5:8: error: cannot define or redeclare 'Index' here because
namespace 'index' does not enclose namespace 'Index'
Index::Index() {
2 errors generated.

This is my compile command:
clang++ --stdlib=libc++ index.cpp

clang version:
clang version 5.0.0 (tags/RELEASE_500/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/local/bin

libc++ version is today's trunk

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

If I don't include <algorithm> or if I change the name of the namespace to
something other than "index", the code compiles.

Is this a libc++ bug?


cfe-dev mailing list
cfe-dev at lists.llvm.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20171029/26793131/attachment.html>

More information about the cfe-dev mailing list