我有一些代码将枚举乘以整数:
QuantLib::Date date2 = date + 12 * QuantLib::Months;
其中 QuantLib::Months 定义为:
enum TimeUnit { Days,
Weeks,
Months,
Years
};
这给了我date2从date开始一年的期望结果。但是,我无法理解这是如何实现的。
我原以为这不会编译。现在我觉得我到达了一个“十二个月”的对象,然后由 QuantLib::Date '+' 运算符重载处理,但我以前从未见过这种风格。
我来自 C# 背景,所以在这里工作时可能有一些我不知道的事情。谁能解释发生了什么?任何参考文档将不胜感激。