<pre name="code" class="cpp">class Weight{ long double value_; public: explicit Weight( long double value ):value_(value){} }; Weight operator "" kg ( long double value){ return Weight(value); } void print(const Weight& w){} int main() { print(56.0kg); //自定义文字常量,56.0kg //print(56kg); //56不是long double, 编译失败 //print(56.0); //不能进行隐式转换, 编译失败 return 0; }
自定义的文字常量,只能支持 unsigned long long , long double ,char* ,(char*, size_t)等有限的几种参数。
""中不能有空格
""与 kg中间必须有空格