On 13/01/12 10:48 PM, DNewbie wrote:
I can't understand it. Why would someone need template programming. What 
problem does template solve?

Suppose you want to write a function to get the minimum of two integers. It's easy:

int min(int a, int b)
{
    return a < b ? a : b;
}

Suppose then you want to use it with floats. You now need to write another function.

float min(float a, float b)
{
    return a < b ? a : b;
}

Suppose you then want to use it with doubles, reals, complex numbers, strings etc. etc. You would quickly get tired of writing these functions, and more importantly you would likely make mistakes at some point.

Templates allow you to solve this problem by writing the function once with placeholders for types:

T min(T)(T a, T b)
{
    return a < b ? a : b;
}

This will work for ints, floats, doubles... Anything that has a < operator will work.

There's much more you can do with templates, but that's the fundamental problem that they solve.

Reply via email to