У меня проблема с пространством имен, называемым "exception"
Рассмотрим следующий пример заголовка:
#include <exception>
namespace exception
{
struct MyException : public std::exception
{};
}
struct AnotherException : public exception::MyException
{
AnotherException() : exception::MyException() { }
};
Этот заголовок не компилируется со следующей ошибкой:
namespacetest.hpp: In constructor 'AnotherException::AnotherException()': namespacetest.hpp:12:48: error: expected class-name before '(' token namespacetest.hpp:12:48: error: expected '{' before '(' token
Для этого есть два решения:
1) квалифицировать пространство имен с помощью "::" в строке 12
AnotherException() : ::exception::MyException() { }
2) Переименуйте пространство имен, например. "Исключительный"
В чем причина того, что пространство имен "исключения" приводит к путанице? Я знаю, что существует класс std:: exception. Это вызывает проблемы?