C++11 我可以直接在表达式中使用namespace::用户定义的文字吗
是否可以在不使用名称空间xxx编写C++11 我可以直接在表达式中使用namespace::用户定义的文字吗,c++11,user-defined-literals,C++11,User Defined Literals,是否可以在不使用名称空间xxx编写的情况下编写用户定义的文本。类似于: 比如说 namespace tostr { std::string operator "" _UP(const char *str, unsigned long long int) { //transformation goes here } } int main(int argc, char** argv) { //using namespace tostr;
的情况下编写用户定义的文本代码>。类似于:代码>
比如说
namespace tostr
{
std::string operator "" _UP(const char *str, unsigned long long int)
{ //transformation goes here
}
}
int main(int argc, char** argv)
{
//using namespace tostr;
//std::string upperCase = "hello world.\n"_UP; //OK : Works perfectly.
//Something like this
std::string upperCase = "hello world.\n"tostr::_UP; //????
}
不,如果没有C++14标准§13.5.8中的using声明,则不能使用带名称空间的文字运算符(不知道C++11中是否存在这种情况)
如果您想限制使用声明的效果(例如,如果您想使用来自不同名称空间的具有相同名称的文本),则应使用{}
作用域。您尝试过吗?Tank you@f1u77y