diff --git "a/md/\347\254\254\344\270\200\351\203\250\345\210\206-\345\237\272\347\241\200\347\237\245\350\257\206/01\345\207\275\346\225\260\346\250\241\346\235\277.md" "b/md/\347\254\254\344\270\200\351\203\250\345\210\206-\345\237\272\347\241\200\347\237\245\350\257\206/01\345\207\275\346\225\260\346\250\241\346\235\277.md" index bf671f8..bf357ac 100644 --- "a/md/\347\254\254\344\270\200\351\203\250\345\210\206-\345\237\272\347\241\200\347\237\245\350\257\206/01\345\207\275\346\225\260\346\250\241\346\235\277.md" +++ "b/md/\347\254\254\344\270\200\351\203\250\345\210\206-\345\237\272\347\241\200\347\237\245\350\257\206/01\345\207\275\346\225\260\346\250\241\346\235\277.md" @@ -601,7 +601,9 @@ int main() { [`std::common_type_t`](https://zh.cppreference.com/w/cpp/types/common_type) 的作用很简单,就是确定我们传入的共用类型,说白了就是这些东西都能隐式转换到哪个,那就会返回那个类型。 -`RT _[]{ args... };` 创建一个数组,形参包在它的初始化器中展开,初始化这个数组,数组存储了我们传入的全部的参数。 +`RT _[]{ static_cast(args)... };` 创建一个数组,形参包在它的初始化器中展开,初始化这个数组,数组存储了我们传入的全部的参数。 + +> 因为[窄化转换](https://zh.cppreference.com/w/cpp/language/list_initialization#.E7.AA.84.E5.8C.96.E8.BD.AC.E6.8D.A2)禁止了列表初始化中 int 到 double 的隐式转换,所以我们需要显式的转换为“公共类型” `RT`。 至于 `sizeof...` 很简单,单纯的获取形参包的元素个数。