Указатели функции с параметрами по умолчанию в C++

Как C++ обрабатывает указатели функции относительно функций с принявшими значение по умолчанию параметрами?

Если я имею:

void foo(int i, float f = 0.0f);
void bar(int i, float f);


void (*func_ptr1)(int);
void (*func_ptr2)(int, float);
void (*func_ptr3)(int, float = 10.0f);

Какие указатели функции я могу использовать относительно который функция?

34
задан iammilind 14 February 2013 в 08:52
поделиться

1 ответ

Оба foo () и bar () могут быть назначены только для func_ptr2 .

§8.3.6 / 2 :

Аргумент по умолчанию не является частью типа функции. [Пример:

int f(int = 0);

void h() {
    int j = f(1);
    int k = f(); // OK, means f(0)
}

int (*p1)(int) = &f; 
int (*p2)() = &f; // error: type mismatch

- конечный пример]

32
ответ дан 27 November 2019 в 17:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: