Преглед на файлове

修改了1.3节一处示例代码的错误,补充了一些文字。

Wu Ye преди 11 години
родител
ревизия
50b2a8cffb
променени са 1 файла, в които са добавени 5 реда и са изтрити 2 реда
  1. 5 2
      ReadMe.md

+ 5 - 2
ReadMe.md

@@ -467,7 +467,7 @@ void foo()
 ```
 因为x不是一个编译期常量,所以 `A<x>` 就会告诉你,x是一个局部变量,不能作为一个模板参数出现。
 
-嗯,这里我们再写几个相对复杂的例子:
+嗯,这里我们再写几个相对复杂的例子:
 
 ``` C++
 template <int i> class A 
@@ -490,7 +490,7 @@ void foo()
 {
 	A<5> a;
 	B<
-		7, A<5>, nullptr, false
+		7, A<5>, nullptr
 	>				b;	// 模板参数可以是一个无符号八位整数,可以是模板生成的类;可以是一个指针。
 	C<false, &foo>  c;	// 模板参数可以是一个bool类型的常量,甚至可以是一个函数指针。
 	D<&A<3>::foo>   d;	// 丧心病狂啊!它还能是一个成员函数指针!
@@ -500,7 +500,10 @@ void foo()
 template <float a> class E {};		// ERROR: 别闹!早说过只能是整数类型的啦!
 ```
 
+当然,除了单纯的用作常数之外,整型参数还有一些其它的用途。这些“其它”用途最重要的一点是让类型也可以像整数一样运算。《Modern C++ Design》给我们展示了很多这方面的例子。不过你不用急着去阅读那本天书,我们会在做好足够的知识铺垫后,让你轻松学会这些招数。
+
 ###1.4 模板形式与功能是统一的
+
 第一章走马观花的带着大家复习了一下C++ Template的基本语法形式,也解释了包括 `typename` 在内,类/函数模板写法中各个语法元素的含义。形式是功能的外在体现,介绍它们也是为了让大家能理解到,模板之所以写成这种形式是有必要的,而不是语言的垃圾成分。
 
 从下一章开始,我们便进入了更加复杂和丰富的世界:讨论模板的匹配规则。其中有令人望而生畏的特化与偏特化。但是,请相信我们在序言中所提到的:将模板作为一门语言来看待,它会变得有趣而简单。