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
}
我想在my_ns
但一致性std
和std::literals
使用用戶文字不some_function
的using namespace
後。你認爲一致性論證值得頭痛嗎?
如果是這樣,有沒有辦法做到這一點或做類似的事情?
答案很簡單:不吹走你的命名空間使用的指令。 –
問題是:如果你不打算讓任何人使用它,爲什麼要創建一個自定義文字? –