c++ - C++ 默认参数乱序?
问题描述
假设我有:
void f(bool option1 = false, bool option2 =false, bool option3 = false)
{
...
}
我想打电话:
f(option2=true);
这在 C++ 中可能吗?
解决方案
无法按照您在 C++ 中建议的方式调用函数。您可以通过元编程模拟命名参数struct
,也可以简单地将 a 传递给您的函数。例如
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});
推荐阅读
- ios - Swift 将项目重构为 MVVM-C
- environment-variables - 环境变量不适用于 NextJS 上的 Mapbox 令牌
- json - neo4j 使用 apoc 加载 1000 个 json 文档
- python - 我应该如何在 Django Rest Framework API 中返回用户名而不是 id?
- java - 更新数据库并以相同的方法调用存储过程,但似乎不在同一个会话中
- android - 请像我 5 岁一样解释:Flutter 中 MainAxisSize 的目的是什么?
- datatables - 有没有办法根据类型隐藏 DataTables 列?
- javascript - 如何在选择下拉列表中显示单个和多个复选框,在下拉选择中将值解析为复选框
- java - 回文数
- reactjs - Ponyfill Isomorphic-unfetch AbortController