Witam !
Chciałem stworzyć program wykorzystujący szablon oraz specjalizacje (prawidłowo) tak, aby kompilator się pogubił i pokazał błąd. Oczywiście nie było to trudne, jednak w momencie próby rozwiązania takiego problemu i doprowadzenia do aktywacji programu (dodałem tablice wskaźników) nie wiem czy kompilator dalej się gubi czy ja gdzieś popełniłem błąd.
#include <iostream>
template <typename T>
void fun (T arr[], int n); // szablon #1
template <> void fun <> (double * arr[] , int n, int suma = 0); // szablon #2 (specjalizacja)
int main()
{
double tab[3] = {13.55, 25.11, 343.2};
double * wsk[3];
for(int i=0; i<3; i++)
wsk[i] = &tab[i];
std::cout << "\tTablica wartosci\n";
fun(tab, 3); // szablon #1
std::cout << "\n\tProba wywolania\n";
fun(wsk, 3);
return 0;
}
template <typename T>
void fun (T arr[], int n)
{
for(int i=0; i<n; i++)
std::cout << arr[i] << std::endl;
}
template <> void fun <> (double * arr[], int n, int suma = 0)
{
std::cout << "SPECJALIZACJA !" << std:: endl;
for (int i=0; i<n; i++)
suma += *arr[i];
std::cout << "Suma wszystkich wartosci tablicy: "<< suma << std::endl;
}
Proszę o pomoc.