0
私の名前空間に別の名前空間のものを使用したいのですが、私の名前空間の一部にする必要はありません。C++ネームスペース:所有しないで使用する
namespace my_ns{
enum class c: unsigned long long int{};
namespace literals{
constexpr c operator"" _c(unsigned long long int i)noexcept{
return c(i);
}
}
using namespace literals;
auto xyz = 4_c; // OK: use literals::operator""_c
}
void some_function(){
using namespace my_ns; // shall not implicit include my_ns::literals!
auto abc = xyz; // OK
auto def = 4_c; // shall not know my_ns::literals::operator""_c
}
は私がusing namespace
後some_function
ではないstd
とstd::literals
とmy_ns
ではなく、一貫性のために、ユーザリテラルを使用したい:より具体的な私は、次のような状況があります。一貫性の議論が頭痛の価値があると思いますか?
もしそうなら、それをやる方法やそれと似たようなことがありますか?あなたは、ネストされたdetail
名前空間を使用して試してみて、あなたがメインmy_ns
名前空間にしたいものだけを公開することができ
答えは簡単です:ディレクティブを使用して、あなたの名前空間を吹き飛ばしません。 –
質問が募集されます:誰かにそれを使用させたくない場合はなぜカスタムリテラルを作成するのですか? –