用文字初始化十进制

时间:2017-11-16 13:58:44

标签: c++ decimal

我有Decimal类,它实现了十进制浮点运算。它可以用整数算术类型或作为字符串存储的小数位初始化。由于其近似性质,故意避免内置浮点类型。这种方法效果很好,但编码为字符串的小数位看起来很尴尬。是否有可能以某种方式使用C ++文字在场景后面构建字符串(或二进制表示)?

Decimal a{"1.254684987"}; // current initialization
Decimal b{1.254684987_dec}; // desired way

1 个答案:

答案 0 :(得分:5)

鉴于你已经有一个C字符串,只需写一些像

这样的东西
Decimal operator "" _dec(const char* c){
    return Decimal{c}; // Assuming an explicit c'tor
}

auto whatever = 12.3_dec;

当然,您需要一个C ++ 11编译器才能工作。