c++ - 是否可以将 C++ 结构的字段转换为包参数?
问题描述
我有一个如下结构:
struct A1
{
int a;
int b;
char c[10];
};
或者
struct A2
{
double t;
char* p;
};
现在我想访问所有文件,我的领导建议我使用pack参数来简单地处理这个问题,就像这样:
template<typename... T>
void handler(T...args)
{
// handle all struct fileds, such a, b, c here
}
// 怎么调用?
A1 a1;
handle(a1);
A2 a2;
handle(a2);
可悲的是,我不知道如何一一访问所有字段?
请注意,模板函数应该是通用的,因为我们不知道结构是如何定义的?
可能吗?如果是的话,你能告诉我你的想法吗?非常感谢。
解决方案
我相信答案是否定的。
一篇论文提出了一种方法(通过结构化绑定),但至少要到11 月才会考虑。
推荐阅读
- amazon-web-services - AWS IAM s3:前缀
- unreal-engine4 - 物理资产中的无法旋转约束
- automation - 无法启动 webkit 或与 playwright 截屏
- python - Python:将日志记录模块与 configparser 或 argparser 一起使用
- javascript - 使用 Leaflet 扩展自定义图标的“可点击”区域
- c# - 不使用 SSL 或 TLS 时 MailKit 中的 SSL 或 TLS 连接错误
- excel - 对于大文件(大于 1GB),如何使用 VBA (Excel) 将带有 unix 行结尾的文件转换为 DOS 并快速完成?
- c - 当我链接目标文件时,为什么我的 pdb 文件缺少符号?
- java - 如何在 AppCompatTextView 的末尾添加一个 LinerLayout?
- ios - 将相机照片保存到文件位置 - Swift Xcode