如何解决将 output_iterator 概念指定为概念内的函数参数
我正在尝试编写一些需要实现“读取”方法的概念示例。这种“读取”方法需要读取多个字节,并需要一个输出迭代器来写入数据。 目前看起来是这样的:
template <typename T>
concept DataSourceReader = requires (T reader,std::size_t bytes_to_read) {
{ reader.read(bytes_to_read,std::output_iterator<std::uint8_t>) } -> std::same_as<std::size_t>;
};
但是它有多个问题:
当 { reader.read(5,...) }
有效而 { reader.read(std::size_t,...) }
无效时,为什么 bytes_to_read 需要排在最前面也不清楚。
允许 { reader.read(std::same_as<std::size_t>,...) }
似乎没问题,因为这是限制返回类型的方式,但这也是错误的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。