c++ - 实现数据输入速记?

标签 c++

例如,如果我写 32u,那么 C++ 就会理解它是用于无符号整数,或者如果我写 0x,那么 C++ 就会理解它是一个十六进制数。

我想知道是否有一些方法可以定义更多这些?就像我写 128M 那么它会被转换为 134217728 或 12K 会被转换为 12288 等等。

最佳答案

使用 C++11 用户定义字面量:

constexpr unsigned long long operator"" _M(unsigned long long lit) {
    return lit * 1024 * 1024;
}

//use: 128_M

有下划线是因为您定义的所有用户定义文字都需要以一个开头。那些没有被保留的,将开始被 C++14 标准使用。

关于c++ - 实现数据输入速记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16867840/

相关文章:

C++:带有 API 的应用程序架构

c++ - 哪个是 KProf 的最佳替代品?

c++ - 使用 CMake 编译具有多配置的 Boost

c++ - 将类作为参数传递 c++

c++ - 当 QObject 被销毁时,Qt 可以安排将 QObject* 设置为 nullptr 吗?

c++ - 如何使用 C++ 将图像文件转换为 ASCII 图像?

c++ - 添加 stringstream/cout 会损害性能,即使代码从未被调用

c++ - CMake error no CMAKE_C_COMPILER can be found using Xcode and GLFW

android - 如何在不发疯的情况下使用 ARM DS-5 在 eclipse 中调试 Android native 库?

将单词生成为 C、C++ 代码的 PHP 代码