问题描述
我正在尝试编写一些需要实现“读取”方法的概念示例。这种“读取”方法需要读取多个字节,并需要一个输出迭代器来写入数据。 目前看起来是这样的:
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 (将#修改为@)