如何限制文字运算符的范围

时间:2016-09-30 09:44:23

标签: c++

是否有可能限制文字运算符的范围?

我想定义一些后缀以使某些事情更容易指定,但这只与直接连接到特定类或其子类的事物有关。使用此类的其他代码的名称空间不应受此影响。

1 个答案:

答案 0 :(得分:1)

使用命名空间。 wandbox example

namespace my_lits
{
    int operator ""_aaa(const unsigned long long x) 
    {
        return x + 1;
    }
}

int main()
{
    {
        using namespace my_lits;
        std::cout << 100_aaa << "\n";
    }

    {
        // Will not compile!!!
        std::cout << 100_aaa << "\n";
    }
}
  

有没有办法让这个命名空间始终可见,然后在课堂上#39;范围?

无法将命名空间放入类中的范围。有关详细信息,请参阅this问题和this other one

此外,UDL cannot be declared in class scope