模板函数实例化文件?

时间:2014-02-16 00:53:53

标签: c++ templates instantiation

之前我已经为类创建了实例化文件,但我很好奇我将如何为一个函数创建一个。这是我制作的一个程序的例子。

template <typename T>
void deSelSort(T arr[], int n)
{
int j = n - 1;

for (int i = 0; i < n; i++)
    {
        cout << arr[i] << " ";
    }
    cout << endl;

for(int i = 0; i < j; i++, j--) {

    int min=i;
    int max=i;
    int temp;

    for (int temp2 = i + 1; temp2 <= j; temp2++)
    {
        if (arr[temp2] < arr[min]) 
            { 
                min = temp2; 
            }
        if (arr[temp2] > arr[max]) 
            { 
                max = temp2; 
            }
    }

    if (min > max) { 
        temp=min; 
        min=max; 
        max=temp;
        arr[min] = max; 
        arr[max] = min;
    }
    if (min > i) 
    { 
        temp = arr[i]; 
        arr[i] = arr[min];
        arr[min] = temp; 
    }
    if (max < j) 
    { 
        temp = arr[j]; 
        arr[j] = arr[max];
        arr[max] = temp; 
    }

    for (int i = 0; i < n; i++)
    {
        cout << arr[i] << " ";
    }
    cout << endl;


};
}

如果我想创建一个包含int和double的数组,那么实例化文件会是什么样子?现在我的文件看起来像这样

#include "ex3_16.cpp"

template class deSelSort<int>;
template class deSelSort<double>;

1 个答案:

答案 0 :(得分:0)

  

如果我想创建一个包含intsdoubles的数组,实例化文件会是什么样的?

template void deSelSort<int>(int[], int);
template void deSelSort<double>(double[], int);