Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: C++
Expertise: Intermediate
Mar 15, 2005



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Restrict the Types of Template Argument for a Template Class

You can restrict the type of template arguments for a template class by using the Forward template declaration.

Suppose you have a template class and you want to instantiate it only for types int and double:

template<class type>
class test
     test(type x);
     type getValue();
     type m_value;

#include "test.h"

template test<int>;//Forward template declaration
template test<double>;//Forward template declaration

template<class type >
test<type>::test(type t):m_value(t)

template<class type>
type test< type >:: getValue ()
     return m_value;

#include "test.h"

int main()
     test<int> t1(123);		//This will compile
     test<double> t2(6.5);	//This will compile
     cout << t1. getValue () << endl;
     cout << t2. getValue () << endl;
    // test<const char*> t3(sau);	//This will not compile
     return 0;
Saurabh Ramya
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date