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

Klemen Forstnerič via cfe-dev cfe-dev at lists.llvm.org
Sat Oct 28 04:21:59 PDT 2017

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?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20171028/b82409cf/attachment.html>

More information about the cfe-dev mailing list