C++ 默认参数乱序?

标签 c++

假设我有:

void f(bool option1 = false, bool option2 =false, bool option3 = false) 
{
     ... 
}

我想调用:

f(option2=true);

这在 C++ 中可能吗?

最佳答案

不可能按照您在 C++ 中建议的方式调用函数。您可以通过元编程模拟命名参数,或者简单地将struct 传递给您的函数。例如

struct options
{
    bool option0{false};
    bool option1{false};
    bool option2{false};
}; 

void f(options opts = {});

C++11 用法:

options opts;
opts.option2 = true;
f(opts);

C++2a 用法:

f({.option2=true});

关于C++ 默认参数乱序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50357982/

相关文章:

c++ - 在 Win32 桌面应用程序上创建按钮时出错

c++ - 共享内存仅在第一次起作用

c++ - 如何让用户输入声明字符串数组的大小?

c++ - 如何从 C++ 中的线程开始(返回)

c++ - 常量引用优于非常量引用的性能

c++ - openCV中2个多边形的交叉区域

c++ - 有没有办法在 c++ 中禁用旧的 c 样式转换

c++ - 多个应用程序如何使用同一个网络端口?

c++ - VisualStudio - 非常长的监视变量的别名

c++ - 内置类型与。用户定义类型 C++