mirror of
https://github.com/wuye9036/CppTemplateTutorial.git
synced 2024-03-22 13:11:16 +08:00
修改第二章小节名称;修正了示例代码。
This commit is contained in:
parent
50b2a8cffb
commit
e66f371182
|
@ -103,7 +103,11 @@ namespace _1_3
|
||||||
template <uint8_t a, typename b, void* c> class B {};
|
template <uint8_t a, typename b, void* c> class B {};
|
||||||
template <void (*a)()> class C {};
|
template <void (*a)()> class C {};
|
||||||
template <void (A<3>::*a)()> class D {};
|
template <void (A<3>::*a)()> class D {};
|
||||||
|
|
||||||
|
#if WRONG_CODE_ENABLED
|
||||||
template <float a> class E {};
|
template <float a> class E {};
|
||||||
|
#endif
|
||||||
|
|
||||||
void foo()
|
void foo()
|
||||||
{
|
{
|
||||||
A<5> a;
|
A<5> a;
|
||||||
|
@ -116,7 +120,17 @@ namespace _1_3
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if WRONG_CODE_ENABLED
|
||||||
|
const char* s = "abc";
|
||||||
|
template <char const* s> class S
|
||||||
|
{
|
||||||
|
};
|
||||||
|
|
||||||
|
void foo2()
|
||||||
|
{
|
||||||
|
S<"abc"> i;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
class ClassB
|
class ClassB
|
||||||
|
|
|
@ -508,10 +508,11 @@ template <float a> class E {}; // ERROR: 别闹!早说过只能是整数类
|
||||||
|
|
||||||
从下一章开始,我们便进入了更加复杂和丰富的世界:讨论模板的匹配规则。其中有令人望而生畏的特化与偏特化。但是,请相信我们在序言中所提到的:将模板作为一门语言来看待,它会变得有趣而简单。
|
从下一章开始,我们便进入了更加复杂和丰富的世界:讨论模板的匹配规则。其中有令人望而生畏的特化与偏特化。但是,请相信我们在序言中所提到的:将模板作为一门语言来看待,它会变得有趣而简单。
|
||||||
|
|
||||||
## 2. 模板世界的If-Then-Else:特化与偏特化
|
## 2. 模板元编程基础
|
||||||
###2.1 类模板的匹配规则:特化与部分特化
|
###2.1 编程,元编程,模板元编程
|
||||||
###2.2 函数模板的重载、参数匹配、特化与部分特化
|
###2.2 模板世界的If-Then-Else:类模板的特化与偏特化
|
||||||
###2.3 技巧单元:模板与继承
|
###2.3 函数模板的重载、参数匹配、特化与部分特化
|
||||||
|
###2.4 技巧单元:模板与继承
|
||||||
|
|
||||||
## 3 拿起特化的武器,去写程序吧!
|
## 3 拿起特化的武器,去写程序吧!
|
||||||
###3.1 利用模板特化规则实现If-Then-Else与Switch-Case
|
###3.1 利用模板特化规则实现If-Then-Else与Switch-Case
|
||||||
|
|
Loading…
Reference in New Issue
Block a user