C++11 我可以直接在表达式中使用namespace::用户定义的文字吗

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;

是否可以在不使用名称空间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;    
    //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