12-3 委托模板构造函数

委托模板构造函数

委托模板构造函数是指代理构造函数是一个函数模板。下面是一个例子:

#include <vector>
#include <list>
#include <deque>

class X
{
template <class T>
X(T first, T last) : l_(first, last) {} //代理构造函数

std::list<int> l_;

public:
X(std::vector<short> &v) : X(v.begin(), v.end()) {} //vector的委托
X(std::deque<int> &q) : X(q.begin(), q.end()) {} //deque的委托
};

int main()
{
std::vector<short> v{1, 2, 3, 4, 5};
std::deque<int> q{1, 2, 3, 4, 5};
X x1(v);
X x2(q);
return 0;
}