迈尔斯从规则中发现了这样一个代码
规则 18:将界面设计为易于使用对,难以使用错误
struct Day { struct Month { struct Year {
explicit Day(int d) explicit Month(int m) explicit Year(int y)
: val(d) {} : val(m) {} : val(y) {}
int val; int val; int val;
}; }; };
这是错版吗?VS 2017 说你不能那样做。
迈尔斯从规则中发现了这样一个代码
规则 18:将界面设计为易于使用对,难以使用错误
struct Day { struct Month { struct Year {
explicit Day(int d) explicit Month(int m) explicit Year(int y)
: val(d) {} : val(m) {} : val(y) {}
int val; int val; int val;
}; }; };
这是错版吗?VS 2017 说你不能那样做。
显然,在原版中,结构是写成列的,而不是实体的。
( https://books.google.ru/books?id=Qx5oyB49poYC&pg=PA79&lpg=PA79&dq=Scott+Meyers+right+18+struct+day&source=bl&ots=KMoZALrYgU&sig=o6Vqh9XAeAJ2s8BzqsJ_jxqGv1g&hl=en&sa=X&ved=0ahUKEwio-LCCxcHaAhVH2SwKHWxcA_EQ6AEINTAC#v=onepage&q&f =假)