我有一个 C++ 函数,有 5 个参数,所有参数都有默认值。如果我传入前三个参数,程序将为最后两个参数分配一个默认值。有没有办法传递 3 个参数,并跳过中间的一个,给出第一个、第二个和第五个参数的值?
不直接,但你也许可以使用 std::bind 做一些事情:
int func(int arg1 = 0, int arg2 = 0, int arg3 = 0);
// elsewhere...
using std::bind;
using std::placeholders::_1;
auto f = bind(func, 0, _1, 0);
int result = f(3); // Call func(0, 3, 0);
缺点当然是您要重新指定默认参数。我确信其他人会提出更聪明的解决方案,但如果你真的绝望的话,这可能会起作用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)