1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
#include <vector>
using namespace std;
template<typename Data, template <typename> class Vect>
void fun()
{
// Vect<Data, std::allocator<Data>> vd; // fails
Vect<Data> vd; // OK, uses std::allocator
}
template<typename Data,
template <typename, typename> class Vect>
void gun()
{
Vect<Data, std::allocator<Data>> vd; // allocator type is required
}
template<typename Data,
template <typename, typename = std::allocator<Data>> class Vect>
void hun()
{
Vect<Data> vd; // uses default allocator type
}
int main()
{
fun<int, vector>();
gun<int, vector>();
hun<int, vector>();
}
|