c++ - 可变参数的 value_type
问题描述
我可以在 C++ 中进行这样的参数解包吗?此代码无法编译,但我认为这是可能的。
template <typename Container, typename... Args>
void foo(Container& container, Args&&... args){
tuple<typename Container::value_type, typename Args::value_type...> values;
...
}
解决方案
Args&&... args
是转发参考。如果您将左值传递给它,则相应的类型 inArgs
将被推断为左值引用。
typename Args::value_type
仅当Args
是类类型而不是类引用时才有效。因此,您需要从类型中去除参考性:
typename std::remove_reference_t<Args>::value_type...
推荐阅读
- amazon-cloudformation - 如何通过 cloudformation 模板在 codedeploy 中添加“覆盖内容”
- c++ - 将“\”字符附加到 QString
- html - 如何在某个分辨率下将一个项目对齐到另一个下方?
- java - 两个 DynamoDB 表,相同的模型
- ios - 如何在 m1 上使用具有 nullsafety 的 firebase?[ 解决了 ]
- sql - 如何识别导致从 nvarchar 转换为 numeric 的错误的列
- python - 如何在 Python 中为 Pandas 数据框中的每一行计算一个函数?
- meson-build - 在介子构建系统中使用 pkg-config 的最佳实践
- discord.py - discord py 赋予特定用户 id 角色
- python-3.x - 如何从具有各种嘈杂文本和数字的图像中提取文本?