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

标签 c++

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

我想定义一些后缀来使一些事情更容易指定,但这只与直接与特定类或其子类相关的事情有关。使用此类的其他代码的 namespace 不应受此影响。

最佳答案

使用命名空间。 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";
    }
}

Is there a way to make this namespace always visible then in class' scope?

不可能将命名空间引入类的范围内。引用this问题和this other one了解更多详情。

此外,UDL cannot be declared in class scope .

关于c++ - 如何限制文字运算符的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39788462/

相关文章:

c++ - 多态对象列表

c++ - 如何将新的 Qt 窗口与现有的 X 应用程序集成?

c++ - 如何在 C++ 中的 new 失败时获得 0

c++ - 免费 SVN 存储库服务器,无需项目

c++ - 在 C++11/14 中处理儒略日期

c++ - 访问呈现的 WPF 页面/窗口的底层 DirectX 表面/渲染目标

c++ - 在 WebKit 中禁用滚动条(平面框架模式)

c++ - 在 TreeView C++ BUILDER 中突出显示项目

c++ - 用于 cout 顺序的 OpenMP 并行

c++ - 有人可以帮我解决这个错误吗?