C++11
提供用户定义的文字。我刚刚开始玩弄它们,这让我想知道是否可以将所有SI 乘数自动添加到我定义的单个文字中?
例如,如果我定义
Length operator "" _m(long double m) {
return Length(m); // Length in meters
}
whereLength
是某个Units
基类的子类,我希望有一种机制可以为所有返回 a 的文字自动添加(本着与boost 运算符Length
相同的精神)SI 乘数:
// these are added automatically when defining the literal "_m":
// Length in:
Length operator "" _Ym(long double Ym); // Yottameters
Length operator "" _Zm(long double Zm); // Zetameters
... // ...
... // ...
Length operator "" _km(long double km); // kilometers
Length operator "" _mm(long double mm); // millimeters
... // ...
... // ...
Length operator "" _zm(long double zm); // zeptometers
Length operator "" _ym(long double ym); // yoctometers
据我所知,除了一些宏魔法之外,没有办法自动执行此操作,因为所有用户定义的文字都需要显式定义。
..还是我忽略了什么?