From 924b8aa9d2a03ffffcadb2cf4c6dd982d42f732f Mon Sep 17 00:00:00 2001 From: Fansure Grin <47016740+fansuregrin@users.noreply.github.com> Date: Thu, 27 Jun 2024 19:08:39 +0800 Subject: [PATCH] Update item27.md (#185) --- src/5.RRefMovSemPerfForw/item27.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/5.RRefMovSemPerfForw/item27.md b/src/5.RRefMovSemPerfForw/item27.md index 52981ebf..471931c9 100644 --- a/src/5.RRefMovSemPerfForw/item27.md +++ b/src/5.RRefMovSemPerfForw/item27.md @@ -155,7 +155,7 @@ auto cloneOfP(p); //用左值初始化 - **是否是个引用**。对于决定是否通用引用构造函数启用的目的来说,`Person`,`Person&`,`Person&&`都是跟`Person`一样的。 - **是不是`const`或者`volatile`**。如上所述,`const Person`,`volatile Person` ,`const volatile Person`也是跟`Person`一样的。 -这意味着我们需要一种方法消除对于`T`的引用,`const`,`volatile`修饰。再次,标准库提供了这样功能的*type trait*,就是`std::decay`。`std::decay::value`与`T`是相同的,只不过会移除引用和cv限定符(*cv-qualifiers*,即`const`或`volatile`标识符)的修饰。(这里我没有说出另外的真相,`std::decay`如同其名一样,可以将数组或者函数退化成指针,参考[Item1](../1.DeducingTypes/item1.md),但是在这里讨论的问题中,它刚好合适)。我们想要控制构造函数是否启用的条件可以写成: +这意味着我们需要一种方法消除对于`T`的引用,`const`,`volatile`修饰。再次,标准库提供了这样功能的*type trait*,就是`std::decay`。`std::decay::type`与`T`是相同的,只不过会移除引用和cv限定符(*cv-qualifiers*,即`const`或`volatile`标识符)的修饰。(这里我没有说出另外的真相,`std::decay`如同其名一样,可以将数组或者函数退化成指针,参考[Item1](../1.DeducingTypes/item1.md),但是在这里讨论的问题中,它刚好合适)。我们想要控制构造函数是否启用的条件可以写成: ```cpp !std::is_same::type>::value