模板方法
- Template Method
特点:
- 稳定的机构,但是子步骤有很多改变的需求。
- 或者由于固有原因导致无法和任务的整体结构同时实现
目的:
在稳定结构的前提下,灵活实现变化或者晚期再来实现需求
特点:
目的:
在稳定结构的前提下,灵活实现变化或者晚期再来实现需求
使用可变参数模板可以实现
1 | map<string,float> coll; |
1 | //mutable 关键字,表示是否可以改写 |
1 | //**************************// |
1 | void foo()noexcep; |
1 | class Zoo{ |
1 |
|
1 | template<typename T,template<class> class Container> |
1 | int values[]{1,2,3}; |
1 |
|
class Template
1 | template<typename T> |
函数模板
1 | template<class T> //class 可以换位typename |
函数模板不用指明类型
1 | template<class T> //class 可以换位typename |
1 | template <class T1,class T2> |
例子
1 | template <typename> |
1 | template <class Key> |
个数的偏特化
1 | //从左向右特化,个数的特化,只有一个模板参数 |
范围上的偏
1 | template <typename T> |
1 | template<template T ,template<typename T> class Container> //template<template T ,template<class T> class Container> |
1 | template<template T ,template<typename T> class SmartPtr> //template<template T ,template<class T> class Container> |
1 | template <class T,class Sequence = deque<T>> |