现代C++神器之literals

Modern C++有很多理念极具启发性。我个人很欣赏std::chrono::duration的设计,比如说它的构造方式:

milliseconds t1(15);
hours t2 = hours(2);
auto t3 = hours(10);
milliseconds t4(minutes(2));
milliseconds t5 = hours(1);

上面几种都是普通的初始化,后两个会转换不同格式的数据。但是呢:

minutes t6 = 14min;
hours t7 = 2h;

这又是什么?为什么编译通过?那两个后缀竟然合法?不仅如此:

auto t8 = 12s;
milliseconds t9 = 3min;

这两个也是合法的。 Continue reading 现代C++神器之literals