Я сейчас отлаживаю код, но нужно сохранить бинарную совместимость. Теперь есть модификация значения по умолчанию для параметра функции.
void functionName(const type parameter = class::A::getValue());
Теперь я хочу просто изменить это так:
void functionName(const type parameter);
Это все еще бинарная совместимость?
Параметры по умолчанию не меняют тип функции. gcc 4.9.1 компилирует этот код без предупреждений:
#include <iostream>
using namespace std;
static void f (int x) {
cout << x << endl ;
}
static void g() ;
int main() {
f (99) ;
g() ;
return 0 ;
}
static void f (int x = 101) ;
static void g() {
f() ;
}
Re-декларирование f
здесь разрешено принимать значение параметра по умолчанию, что означает, что его связь не изменяется. Так что ты будешь в порядке.