Taka ciekawostka:
#include <iostream>
using namespace std;
template <const int* WSKAZNIK>
const int* Funkcja () {
return WSKAZNIK;
}
extern const int tablica_jeden [ 1 ] = { 1 };
const int tablica_dwa [ 1 ] = { 2 };
int tablica_trzy [ 1 ] = { 3 };
int main(){
cout << Funkcja < tablica_jeden > () << endl; // działa
//cout << Funkcja < tablica_dwa > () << endl; // nie działa
cout << Funkcja < tablica_trzy > () << endl; // działa
}
I pytania:
- Czemu różnica extern (pierwsza tablica) powoduje działanie, podczas gdy jego brak (druga tablica nie)?
- Czemu działa z tablicą trzecią, mimo, że brak stałości.