У меня есть следующий класс RESTClient, который я планирую реализовать с использованием boost.beast
. У меня есть следующие пространства имен, объявленные в заголовке.
namespace beast = boost::beast;
namespace http = beast::http;
namespace net = boost::asio;
using tcp = boost::asio::ip::tcp;
Однако я не хочу загрязнять глобальное пространство имен. Я хочу, чтобы namespce было объявлено внутри класса. Я попробовал описанную здесь технику Ошибки C ++ избегают глобальных пространств имен . Кажется, это не помогает. Что представляет собой элегантный способ перенести описанное выше определение пространства имен в класс
class RESTClient {
public:
explicit RESTClient(std::shared_ptr<net::io_context> ioc, std::shared_ptr<Logger> logger, std::shared_ptr<Configuration> config);
virtual ~RESTClient();
private:
std::shared_ptr<Logger> m_logger;
};