c++ - 跳过 C++ 函数中的一些参数?

标签 c++ optimization arguments default-arguments

我有一个 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);

缺点当然是你要重新指定默认参数。我相信其他人会提出更聪明的解决方案,但如果您真的很绝望,这可能会奏效。

关于c++ - 跳过 C++ 函数中的一些参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19024188/

相关文章:

c - 此优化代码中调用的内容

jquery - after() 带有附加参数未按预期工作

optimization - 使用 Bonmin Counne 和 Ipopt 进行 NLP

JavaScript 可变数量的函数参数

Perl 代码,定义参数

c++ - 调用的对象已与其客户端断开连接

c++ - 应用程序在 CCriticalSection::Lock 上中断

c++ - 使用文件 I/O C++ 时出现段错误 11

c++ - 在哪里可以找到流行的 C++ 视频游戏代码?

c - 将 MATLAB 代码移植到优化 C 的有效方法