c++ - 如何使用美元/欧元符号登录代码来初始化变量?

我想写一些使用不同类型货币的代码,例如

struct euro {
    int value;
};

struct dollar {
    int value;
};

现在我想在代码中使用欧元和美元符号,比如

euro e = 3€;
dollar d = 3$;

这有可能吗?

最佳答案

你需要的是user defined lietrals .下面的代码对我使用 g++ 11.1.0 有效,但我猜非 ASCII € 可能会有一些问题。也许尝试使用 EUR 后缀?对于负值,请参阅 this .

#include <charconv>
#include <cstring>
#include <iostream>
    
struct euro
{
    unsigned long long val;
};

euro operator"" _€ (unsigned long long num)
{
    return euro {num};
}

int main()
{
    euro e = 123_€;
    std::cout << e.val << '\n';
}

https://stackoverflow.com/questions/70435254/

相关文章:

reactjs - 为什么 npm uninstall -g create-react-app 失败

r - 构建组中所有值的列表并应用于整个组

google-cloud-platform - 关于 Google Cloud Pub/Sub 消息

regex - 只查找多行 C 注释,不查找单行 C 注释

android - 在 Jetpack Compose 中调用分页数据的刷新方法无法正常工作

r - 将分区文件夹列转换为变量

r - 计算数据框中给定变量的均值和标准差

go - Golang 中的全局变量

python - 压缩文件 : Check for correct Password

nuget - nuget 的 GitHub Packages 服务身份验证问题