QSqlQuery
(행을 순회하고 각 행에 대해 새 클래스 유형 객체를 생성하기 위해)에 대한 입력 반복기 래퍼를 수행하고 있으며 반환 유형이 operator*
인지 알아야합니다.`input_iterator :: operator *`에 대한 반환 유형은 무엇입니까?
input iterator concept description에서 cppreference
에 따르면, *i
의 반환 형식이되어야합니다
참조,
과 호기심 VALUE_TYPE하는 컨버터블, 그 쉼표 ,
표현하는 경우에 대해 의심 해요 제 경우에는 operator*
을 호출 할 때 새로운 객체 (형식이 클래스 템플릿 매개 변수 임)를 구성하기 때문에 or
또는 and
("value_type에 대한 참조 또는 value_type에 대한 변환" . 따라서 참조를 반환 할 수 없습니다.
입력 반복기 "개념"과 일치 시키려면 값으로 개체를 반환 할 수 있습니까?
일반적으로 iterator는 증가시킬 때 새 값을 가져 와서 내부에 저장 한 다음 참조를 역 참조 할 때 참조를 반환합니다. – Brian
'value_type'은 템플릿이기 때문에, 클래스 자체에 건설을 위임합니다 ('fetch'라는 'value_type'의 정적 멤버 함수, 행 수신 및 새 객체 반환). 그 객체가 얼마나 비싸 냐고 모르기 때문에, 객체가 할당 가능하거나 아닌지 등등,'value_type'에 새로운 요구 사항을 부과하지 않고 객체를 반복기 클래스 내에 "저장"하는 방법을 모르거나 'new' (작은 객체에서는 불필요 할 수 있습니다). –