From c86a30111a388c5cd049259a3e54d5302d2ddc33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BD=92=E6=95=85=E9=87=8C?= <3326284481@qq.com> Date: Sat, 16 Mar 2024 14:15:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AF=B9=E5=BD=A2=E5=8F=82?= =?UTF-8?q?=E5=8C=85=E5=9C=A8=E5=88=97=E8=A1=A8=E5=88=9D=E5=A7=8B=E5=8C=96?= =?UTF-8?q?=E4=B8=AD=E5=B1=95=E5=BC=80=E7=9A=84=E8=A7=A3=E9=87=8A=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../01\345\207\275\346\225\260\346\250\241\346\235\277.md" | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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...` 很简单,单纯的获取形参包的元素个数。