C 支持名称参数
Does C++ support named parameters?
以前,我与python合作。在Python中,我使用命名参数(关键字参数)进行函数调用。关于命名参数的Wikipedia页面告诉C 不支持它。为什么C 支持名称参数?它会在C 标准的未来版本中支持它吗?
C 支持命名参数?
否,因为此功能尚未引入标准。C 最初基于C 的功能也不存在(也不存在)。
。它将在C 标准的未来版本中支持它?
为此写了一项建议。但是该提议被拒绝。
C 中的一个基本问题是,函数声明中的参数名称并不重要,并且以下程序定义明确:
void foo(int x, int y);
void foo(int y, int x); // re-declaration of the same function
void foo(int, int); // parameter names are optional
void foo(int a, int b) {} // definition of the same function
如果将命名参数引入了该语言,则在这里传递哪些参数?
foo(x=42, b=42);
命名参数需要显着不同,并且向后不兼容的参数传递系统。
您可以使用类类型的单个参数模拟命名参数:
struct args {
int a = 42;
float b = 3.14;
};
void foo(args);
// usage
args a{};
a.b = 10.1;
foo(a);
// or in C++20
foo({.b = 10.1});
相关文章:
- OpenCL 是否支持向量作为内核参数?
- 如何根据基类型支持不同数量的参数?
- C++中的可变参数函子可以支持命名字段吗?
- 为什么libc++不支持在多集上推导类模板参数?
- 如果创建支持返回可变参数类型列表的通用模板 API,我应该使用 std::tuple 还是其他东西?
- 支持与参数有关的查找的编译器
- 有没有办法在我的通用功能路由器设计中支持"常量引用"作为功能签名参数?
- 为了支持移动语义,应通过unique_ptr,值或rvalue获取功能参数
- C 支持名称参数
- apache-frift是否支持函数变量作为参数
- 如何使用 C++11 可变参数模板来定义由向量元组支持的元组向量
- 为什么说C++不支持参数多态性
- OpenCV错误:cvGetMat中有错误的标志(参数或结构字段)(无法识别或不支持的数组类型)
- 我们如何更改此函数以支持多个参数
- 如何在不支持可变参数模板参数时为元组专用化类模板
- 命令行程序如何支持管道参数
- 如何更改 MSVC++ 的 std::tuple 支持的模板参数数量?
- 如何避免LLVM的支持命令行泄漏库参数?
- C++参数支持字符串和整数的结构
- 没有可变参数支持的宏自动注入参数