C++

Topic: Templates

Explain about Non-type parameters for templates ?

Besides the template arguments that are preceded by the class or typename keywords , which represent types, templates can also have regular typed parameters, similar to those found in functions. As an example, have a look at this class template that is used to contain sequences of elements:// sequence template#include <iostream>using namespace std;template <class T, int N>class mysequence {    T memblock [N];  public:    void setmember (int x, T value);    T getmember (int x);};template <class T, int N>void mysequence<T,N>::setmember (int x, T value) {  memblock[x]=value;}template <class T, int N>T mysequence<T,N>::getmember (int x) {  return memblock[x];}int main () {  mysequence <int,5> myints;  mysequence <double,5> myfloats;  myints.setmember (0,100);  myfloats.setmember (3,3.1416);  cout << myints.getmember(0) << '\n';  cout << myfloats.getmember(3) << '\n';  return 0;}	output:100,3.1416 It is also possible to set default values or types for class template parameters. For example, if the previous class template definition had been: 	template <class T=char, int N=10> class mysequence {..}; We could create objects using the default template parameters by declaring: 	mysequence<> myseq; Which would be equivalent to: 	mysequence<char,10> myseq;

Browse random answers: