为什么没有std::make_raw_storage_iterator
Why there is no std::make_raw_storage_iterator?
我想知道为什么std::raw_storage_iterator
没有像std::move_iterator
和std::make_move_iterator
那样的附带std::make_raw_storage_iterator
。std::raw_storage_iterator
类模板有两个模板参数。因此,我认为实际上为std::raw_storage_iterator
提供一个make函数比为std::move_iterator
提供一个只需指定一个模板参数的make函数更有用。
有了@dyps的建议,一个合理的实现确实是可能的:
template <typename OutputIt>
auto make_raw_storage_iterator( OutputIt out ) {
return std::raw_storage_iterator<OutputIt, std::remove_pointer_t<decltype(&*out)>>(out);
}
(演示和cppreference的示例(
由于§20.7.10/1对raw_storage_iterator
的模板参数提出了要求,要求
OutputIterator
需要使其operator*
为定义了哪个CCD_ 11并返回指向CCD_ 12[..]的指针
其中T
是第二个参数,即输出范围的值类型。因此,给定底层输出迭代器,我们有足够的信息来确定raw_storage_iterator
的预期专门化。
没有提出这一点的原因肯定不仅仅是疏忽——考虑到make_reverse_iterator
甚至make_unique
在C++14之前也没有提供。请随意迈出第一步。
相关文章:
- Azure Storage CPP & VCPKG
- 在RAW图像中提取RGB通道值的库或方法
- C++应用程序缺少 winrt::Windows::Storage::Streams::D ataWriter
- thread_local "storage class specified"
- 从shared_ptr获取原始指针以将其传递给需要 raw 的函数
- 使用RAW套接字读取ICMP响应
- 如何打开和读取16位.raw文件Vc++(Wince 平台)
- C++ 结构数组 - "This declaration has no storage class or type specifier"
- C++窗口中的 RAW 套接字
- CImage::D raw() 画了一幅黑色的图画
- C++ 中的"this declaration has no storage class or type specifier"错误
- 如何修复派生类给出错误'declaration has no storage class or type specifier'?
- 正在读取 RAW 音频文件
- "declaration has no storage class or type specifier" C++
- Python如何将RAW String转换为十六进制
- 如何发送RAW JSON PORT请求C
- 如何从文件中读取 8 位 RAW 数据
- 使用 FreeImage 加载 RAW 灰度图像
- 如何读取C 中的raw文件
- 安卓 JNI - 'raw'函数编译失败