RAD Studio |  |

Template Arguments

Multiple arguments are allowed as part of the class template declaration. Template arguments can also represent values in addition to data types:

Copy Code

    template<class T, int size = 64> class Buffer { ... };

Both non-type template arguments such as size and type arguments can have default values. The value supplied for a non-type template argument must be a constant expression:

Copy Code

    const int N = 128;
    int i = 256;
    Buffer<int, 2*N> b1;// OK
    Buffer<float, i> b2;// Error: i is not constant

Since each instantiation of a template class is indeed a class, it receives its own copy of static members. Similarly, template functions get their own copy of static local variables.

Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
What do you think about this topic? Send feedback!