From e66f371182ea0d759f41e2f14cf9005266a9db06 Mon Sep 17 00:00:00 2001 From: Wu Ye Date: Thu, 13 Feb 2014 22:13:50 -0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=AC=AC=E4=BA=8C=E7=AB=A0?= =?UTF-8?q?=E5=B0=8F=E8=8A=82=E5=90=8D=E7=A7=B0=EF=BC=9B=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?=E4=BA=86=E7=A4=BA=E4=BE=8B=E4=BB=A3=E7=A0=81=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CppTemplateTutorial.cpp | 14 ++++++++++++++ ReadMe.md | 9 +++++---- 2 files changed, 19 insertions(+), 4 deletions(-) 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