如何为参数提供由其他参数的函数确定的默认值

har*_*old 4 c++ function default-value

在具有多个参数的C++函数中,我希望其中一个参数具有默认值,该默认值本身是其他参数的函数.例如,

int f1( int m );
int f2( int n1, int n2 = f1( n1 ) ) {
    // Do stuff with n1 and n2
}
Run Code Online (Sandbox Code Playgroud)

这不会编译,但希望它清楚我想要的函数f2的行为.它的调用者应该能够手动传递一个n2的值,但是默认情况下,n2的值应该通过在n1上调用f1来确定.关于如何最好地实现(或至少近似)这种行为有哪些建议?

Dao*_*Wen 6

重载该功能:

int f1( int m );
int f2( int n1, int n2 ) {
    // Do stuff with n1 and n2
}
int f2( int n1 ) {
    return f2( n1, f1( n1 ) );
}
Run Code Online (Sandbox Code Playgroud)