我有Decimal类,它实现了十进制浮点运算。它可以用整数算术类型或作为字符串存储的小数位初始化。由于其近似性质,故意避免内置浮点类型。这种方法效果很好,但编码为字符串的小数位看起来很尴尬。是否有可能以某种方式使用C ++文字在场景后面构建字符串(或二进制表示)?
Decimal a{"1.254684987"}; // current initialization
Decimal b{1.254684987_dec}; // desired way
答案 0 :(得分:5)
鉴于你已经有一个C字符串,只需写一些像
这样的东西Decimal operator "" _dec(const char* c){
return Decimal{c}; // Assuming an explicit c'tor
}
auto whatever = 12.3_dec;
当然,您需要一个C ++ 11编译器才能工作。