diff --git a/CppTemplateTutorial.cpp b/CppTemplateTutorial.cpp index fbd07ec..55275a9 100644 --- a/CppTemplateTutorial.cpp +++ b/CppTemplateTutorial.cpp @@ -103,7 +103,11 @@ namespace _1_3 template class B {}; template class C {}; template ::*a)()> class D {}; + +#if WRONG_CODE_ENABLED template 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 class S + { + }; + void foo2() + { + S<"abc"> i; + } +#endif template class ClassB diff --git a/ReadMe.md b/ReadMe.md index 234c221..775a498 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -508,10 +508,11 @@ template 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