c++ - 可变参数数组编译时的已知大小
问题描述
我试图在编译时推断出每个数组的大小,但我不喜欢我想出的方式。
template <std::size_t Length>
struct __helper
{
__helper(const char (&_sName)[Length])
{
memcpy(m_sName, _sName, Length);
}
char m_sName[Length];
};
template <std::size_t... Lengths>
static void foo(__helper<Lengths>... _namespaces)
{
}
我只想传递没有__helper的文本,例如foo("test", "test2")而不是foo(__helper("test"), __helper("test2"))。有什么方法可以按我的意愿执行此操作吗?
解决方案
采用可变参数 C 数组的语法是:
template <std::size_t... Ns>
static void foo(char (&...args)[Ns])
{
// ...
}
推荐阅读
- java - 无法创建 Excel 文件 (Java)
- python - Jupyter notebook 不再在外部窗口中打开 matplotlib 图?
- iot - 如何使用 SIM 卡将微控制器连接到互联网
- micropython - Micropython,在没有文件系统的情况下存储二进制文件
- xcode - Xcode 的编辑摘要格式功能的文档在哪里?
- sql - 合并两个具有不同连接条件的查询
- javascript - 为什么会导致 .map 记录到控制台而不是实际视图
- grammar - 使语法 ll(1) 明确
- python - 加快从 Python 文件中读取图像的速度
- titanium - 标签内容不可见