我正在为QSqlQuery
做一个输入迭代器包装器(用于遍历行并为每一行构造一个新的类类型对象),我想知道返回的{{1}类型必须是什么}。
根据input iterator concept description中的operator*
,返回的cppreference
类型必须为:
引用,可转换为value_type
奇怪的是,我怀疑该逗号*i
是代表,
还是or
(“引用value_type或/和可转换为value_type”),因为在我的情况下,我在调用and
时构造了一个新对象(其类型是类模板参数)。因此,我无法返回参考文献。
要匹配输入迭代器“concept”,我可以按值返回对象吗?
答案 0 :(得分:2)
iterator_traits<>
必须定义5种类型,其中一种是reference
,因此是逗号。你可以按价值返回;对const_iterator
这样做是公平的,因为:对于非const,你不能修改原文。我想这是可以的,因为你有一个SQL查询。在这种情况下,您可以在typedef value_type reference;
内进行iterator_traits<T>
。