Witam, mam problem. Mam stwierdzić, które deklaracje funkcji są dobre, a które nie. mam problem z tymi "bardziej zagmatwanymi"
1 int fun(double, int );
2 void fun(double, unsigned int);
3 void fun(double, ... );
4 template<class x>
int fun( list<x>& );
5 template<int x>
int fun(int, double[x] );
6 template<class x>
int fun(x, x(*)(x*) );
komilator wywala się przy 4:
http://wklej.org/id/931852/?hl=
pierwsza, wygląda elegancko, druga tak samo.
W trzeciej co oznaczają kropeczki? Mozliwość dodania nieskończonej ilości innych nieobowiązkowych argumentów?
Ad. 4 dostaje referencje, ale na co? o.O
Ad. 5 czy double [x] jest poprawne? tzn czy możemy dac funkcji tablice z typem miedzy nawiasami?
Ad. 6
nie rozumiem co to x()(x) dlaczego argument ma dwa nawiasy okragle? co znaczy () ? i dlaczego mamy (x) bez czegos kolejnego np (x* jakies_cos) ?