From 24fbf47ad3f22e332f1444b97855e840f07c06c9 Mon Sep 17 00:00:00 2001 From: Ye WU Date: Tue, 24 Nov 2015 21:23:37 -0800 Subject: [PATCH] Updated format of referenced text. --- ReadMe.md | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/ReadMe.md b/ReadMe.md index fbd1af5..d37900e 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -1334,21 +1334,30 @@ template foo(T& v0, C& v1){ 因此在模板定义的地方进行语义分析,并不能**完全**得出代码是正确或者错误的结论,只有到了实例化阶段,确定了模版参数的类型后,才知道这段代码正确与否。令人高兴的是,在这一问题上,我们和C++标准委员会的见地一致,说明我们的C++水平已经和Herb Sutter不分伯仲了。既然我们和Herb Sutter水平差不多,那凭什么人家就吃香喝辣?下面我们来选几条标准看看服不服: -> ###14.6 名称解析(Name resolution) +> **14.6 名称解析(Name resolution)** > **1)** 模板定义中能够出现以下三类名称: -> —— 模板名称、或模板实现中所定义的名称; -> —— 和模板参数有关的名称; -> —— 模板定义所在的定义域内能看到的名称。 +> * 模板名称、或模板实现中所定义的名称; +> * 和模板参数有关的名称; +> * 模板定义所在的定义域内能看到的名称。 + > … + > **9)** … 如果名字查找和模板参数有关,那么查找会延期到模板参数全都确定的时候。 … + > **10)** 如果(模板定义内出现的)名字和模板参数无关,那么在模板定义处,就应该找得到这个名字的声明。… -> ###14.6.2 依赖性名称(Dependent names) -> **1)** …(模板定义中的)表达式和类型可能会依赖于模板参数,并且模板参数会影响到名称查找的作用域 … 如果表达式中有操作数依赖于模板参数,那么整个表达式都依赖于模板参数,名称查找延期到**模板实例化时**进行。并且定义时和实例化时的上下文都会参与名称查找。(依赖性)表达式可以分为类型依赖(类型指模板参数的类型)或值依赖。 -> ####14.6.2.2 **类型依赖的表达式** + +> **14.6.2 依赖性名称(Dependent names)** + +> **1)** …(模板定义中的)表达式和类型可能会依赖于模板参数,并且模板参数会影响到名称查找的作用域 … 如果表达式中有操作数依赖于模板参数,那么整个表达式都依赖于模板参数,名称查找延期到**模板实例化时**进行。并且定义时和实例化时的上下文都会参与名称查找。(依赖性)表达式可以分为类型依赖(类型指模板参数的类型)或值依赖。 + +> **14.6.2.2 类型依赖的表达式** + > **2)** 如果成员函数所属的类型是和模板参数有关的,那么这个成员函数中的`this`就认为是类型依赖的。 -> ###14.6.3 非依赖性名称(Non-dependent names) + +> **14.6.3 非依赖性名称(Non-dependent names)** + > **1)** 非依赖性名称在**模板定义**时使用通常的名称查找规则进行名称查找。 [Working Draft: Standard of Programming Language C++, N3337][1]