#include <iostream>
#include <cstddef>
using namespace std;
class alloc
{
public:
alloc()
{
cout << "alloc()" << endl;
}
};
template <class T,class Alloc =alloc,size_t Bufsize = 512>
class deque
{
public:
deque()
{
cout << "deque" << endl;
}
};
template <class T,class Seq = deque<T> >
class stack
{
public:
stack()
{
cout << "stack" << endl;
}
};
int main()
{
stack<int> s;
return 0;
}
运行结果
stack
表明虽然stack类有deque泛型参数,但没有实例化对象
#include <iostream>
#include <cstddef>
using namespace std;
class alloc
{
public:
alloc()
{
cout << "alloc()" << endl;
}
};
template <class T,class Alloc =alloc,size_t Bufsize = 512>
class deque
{
public:
deque()
{
cout << "deque" << endl;
}
private:
Alloc a;
};
template <class T,class Seq = deque<T> >
class stack
{
public:
stack()
{
cout << "stack" << endl;
}
private:
Seq s;
};
int main()
{
stack<int> s;
return 0;
}
运行结果
alloc()
deque
stack