c++ - recursive_iter_value_t 模板结构
问题描述
我正在尝试std::iter_value_t
使用 C++20 概念实现递归版本,以便可以检索T
嵌套容器的基本类型。std::vector<std::vector<...std::vector<T>...>>
实验实现如下。
template<typename T>
concept is_iterable = requires(T x)
{
*std::begin(x);
std::end(x);
};
template<typename T> requires (!is_iterable<T>)
struct recursive_iter_value_t_detail
{
typedef typename T type;
};
template<typename T> requires (is_iterable<T>)
struct recursive_iter_value_t_detail
{
typedef typename std::iter_value_t<recursive_iter_value_t_detail<T>::type> type;
};
template<typename T>
using recursive_iter_value_t = recursive_iter_value_t_detail<T>::type;
但是,我收到了错误消息'type': use of dependent type name must be prefixed with 'typename'
,我想知道问题到底出在哪里。
的预期输出recursive_iter_value_t<std::vector<std::vector<int>>>
是int
。
解决方案
推荐阅读
- redis - Redis Streams 如何处理耗尽所有可用内存的问题?
- mysql - 请求 SQL:加入表并且不想要多个值
- c# - 从 Control.InvokeOnClick() 识别发件人
- c# - 将视频从 PC 直播到 HoloLens 时如何提高 HoloLens 的性能?
- javascript - 渲染页面后在 HTML 中拆分文本名称字符串
- android - 如何在特定日期的特定时间范围内显示不同的消息
- python - 如何使用 matplotlib 并排绘制两个图(无熊猫)
- swift - UIImageView 缩小底部空间
- javascript - 无法使用不同的名称访问正则表达式值
- jquery - 使用 jquery 在树枝循环中从 html span 标签中检索内容