inline namespace
MSVCでをエミュレートする方法はありますか?
LLVMのlibc++はこれを使用して、次のような非表示のバージョン管理された名前空間を作成します。
#define _LIBCPP_BEGIN_NAMESPACE_STD namespace std {inline namespace _LIBCPP_NAMESPACE {
#define _LIBCPP_END_NAMESPACE_STD } }
#define _VSTD std::_LIBCPP_NAMESPACE
namespace std {
inline namespace _LIBCPP_NAMESPACE {
}
}
そして、次のようにGCCでエミュレートします。
#define _LIBCPP_BEGIN_NAMESPACE_STD namespace std { namespace _LIBCPP_NAMESPACE {
#define _LIBCPP_END_NAMESPACE_STD } }
#define _VSTD std::_LIBCPP_NAMESPACE
namespace std {
namespace _LIBCPP_NAMESPACE {
}
using namespace _LIBCPP_NAMESPACE __attribute__((__strong__));
}
今私の質問は、MSVCで同じことをどのように達成するのですか?それが不可能な場合は、バージョン管理を省略したソリューションに満足します(今のところ)。
#define _LIBCPP_BEGIN_NAMESPACE_STD namespace std {
#define _LIBCPP_END_NAMESPACE_STD }
#define _VSTD std
しかし、ある種の目的を打ち負かします...