From 943bfb2dcd94c9d9390aff188f35be2c22b7373d Mon Sep 17 00:00:00 2001 From: Frank997 Date: Wed, 14 Jul 2021 18:24:53 +0800 Subject: [PATCH] Update item42.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更正一处小错误。 --- 8.Tweaks/item42.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/8.Tweaks/item42.md b/8.Tweaks/item42.md index a2ff354..ec59dd1 100644 --- a/8.Tweaks/item42.md +++ b/8.Tweaks/item42.md @@ -228,7 +228,7 @@ std::regex r(nullptr); //可编译 ```cpp std::regex r1 = nullptr; //错误!不能编译 -std::regex r2(nullptr); //错误 +std::regex r2(nullptr); //可以编译 ``` 在标准的官方术语中,用于初始化`r1`的语法(使用等号)是所谓的**拷贝初始化**。相反,用于初始化`r2`的语法是(使用小括号,有时也用花括号)被称为**直接初始化**。拷贝初始化不被允许使用`explicit`构造函数(译者注:即没法调用相应类的`explicit`拷贝构造函数),直接初始化却被允许。这就是初始化`r1`不能编译,而初始化`r2`可以编译的原因。