mirror of
https://github.com/CnTransGroup/EffectiveModernCppChinese.git
synced 2024-12-28 05:40:43 +08:00
Merge pull request #58 from AndyJMR/master
Fix some translation in Item 3
This commit is contained in:
commit
71c04f0b8c
@ -1,7 +1,7 @@
|
||||
## Item 3: Understand decltype
|
||||
条款三:理解decltype
|
||||
|
||||
**decltype**是一个奇怪的东西。给它一个名字或者表达式**decltype**就会告诉你名字或者表达式的类型。通常,它会精确的告诉你你想要的结果。但有时候它得出的结果也会让你挠头半天最后只能网上问答求助寻求解释。
|
||||
**decltype**是一个奇怪的东西。给它一个名字或者表达式**decltype**就会告诉你名字或者表达式的类型。通常,它会精确的告诉你你想要的结果。但有时候它得出的结果也会让你挠头半天,最后只能求助网上问答或参考资料寻求启示。
|
||||
|
||||
我们将从一个简单的情况开始,没有任何令人惊讶的情况。相比模板类型推导和auto类型推导,decltype只是简单的返回名字或者表达式的类型:
|
||||
````cpp
|
||||
|
@ -126,14 +126,14 @@ Widget w1(10, true); // 使用小括号初始化
|
||||
//调用第一个构造函数
|
||||
|
||||
Widget w2{10, true}; // 使用花括号初始化
|
||||
// 调用第二个构造函数
|
||||
// 调用第三个构造函数
|
||||
// (10 和 true 转化为long double)
|
||||
|
||||
Widget w3(10, 5.0); // 使用小括号初始化
|
||||
// 调用第二个构造函数
|
||||
|
||||
Widget w4{10, 5.0}; // 使用花括号初始化
|
||||
// 调用第二个构造函数
|
||||
// 调用第三个构造函数
|
||||
// (10 和 5.0 转化为long double)
|
||||
````
|
||||
甚至普通的构造函数和移动构造函数都会被std::initializer_list构造函数劫持:
|
||||
|
Loading…
Reference in New Issue
Block a user