коллеги,
я тут сначала наступил, а потом и в стандарте вычитал (8.3.6 Default aguments), что оказывается нельзя задавать дефолтные значения параметров при определении типа указателя на функцию.
то есть хочется писать примерно вот такой код:
typedef void (*pfun)(int a, int b = 7); // error!
void f1(int a, int b);
void main(){
pfun f = f1;
f(1);
}
собственно, мне непонятна причина такого запрета. мне кажется, что никаких неоднозначностей тут не возникнет и вообще компилятору не составит труда такой код компилять.
в чем причина такого ограничения?
спасибо.