Browse Source

修改第二章小节名称;修正了示例代码。

Wu Ye 11 years ago
parent
commit
e66f371182
2 changed files with 19 additions and 4 deletions
  1. 14 0
      CppTemplateTutorial.cpp
  2. 5 4
      ReadMe.md

+ 14 - 0
CppTemplateTutorial.cpp

@@ -103,7 +103,11 @@ namespace _1_3
 	template <uint8_t a, typename b, void* c> class B {};
 	template <void (*a)()> class C {};
 	template <void (A<3>::*a)()> class D {};
+
+#if WRONG_CODE_ENABLED
 	template <float a> class E {};
+#endif
+
 	void foo()
 	{
 		A<5> a;
@@ -116,7 +120,17 @@ namespace _1_3
 #endif
 	}
 
+#if WRONG_CODE_ENABLED
+	const char* s = "abc";
+	template <char const* s> class S
+	{
+	};
 
+	void foo2()
+	{
+		S<"abc"> i;
+	}
+#endif
 
 	template <typename T>
 	class ClassB

+ 5 - 4
ReadMe.md

@@ -508,10 +508,11 @@ template <float a> class E {};		// ERROR: 别闹!早说过只能是整数类
 
 从下一章开始,我们便进入了更加复杂和丰富的世界:讨论模板的匹配规则。其中有令人望而生畏的特化与偏特化。但是,请相信我们在序言中所提到的:将模板作为一门语言来看待,它会变得有趣而简单。
 
-## 2.  模板世界的If-Then-Else:特化与偏特化
-###2.1 类模板的匹配规则:特化与部分特化
-###2.2 函数模板的重载、参数匹配、特化与部分特化
-###2.3 技巧单元:模板与继承
+## 2.  模板元编程基础
+###2.1 编程,元编程,模板元编程
+###2.2 模板世界的If-Then-Else:类模板的特化与偏特化
+###2.3 函数模板的重载、参数匹配、特化与部分特化
+###2.4 技巧单元:模板与继承
 
 ## 3   拿起特化的武器,去写程序吧!
 ###3.1 利用模板特化规则实现If-Then-Else与Switch-Case