-
Notifications
You must be signed in to change notification settings - Fork 35
Open
Description
Whilst building, I encountered a warning several times - here is a snippet:
> ./ext/./minihttp/minihttp.cpp:37:44: warning: use of enumeration in a nested name specifier is a C++11 extension [-Wc++11-extensions]
> {OS_TEXT("SSLR_OK"), minihttp::SSLResult::SSLR_OK},
> ^
I was confused at first, but when I put the warning into google, I ended up here: http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20150112/121520.html
If you scroll down, you can see a testcase, which demonstrates this:
+namespace PR16951 {
+ namespace ns {
+ enum an_enumeration {
+ ENUMERATOR // expected-note{{'ENUMERATOR' declared here}}
+ };
+ }
+
+ int x1 = ns::an_enumeration::ENUMERATOR; // expected-warning{{use of enumeration in a nested name specifier is a C++11 extension}}
So as it turns out, putting an enum into a namespace is C++11 and upwards. I myself was...well, surprised wouldn't suit it. But I would have assumed that naturally, anything can go into a namespace - turns out this is wrong.
So I'd like to ask for these enums to be moved upwards and renamed. It's just two anyway:
minihttp::SSLResult->minihttp_SSLResultminihttp::HttpCode->minihttp_HttpCode
I am just suggesting these, but they would make the most sense, and allow non-C++11 compilers to not become confused :)
Metadata
Metadata
Assignees
Labels
No labels