SGI STL의 반복자 특징을 학습 할 때 문제가 있습니다.value_type 함수가 SGI STL에서 포인터를 반환하는 이유
이 함수는 반복기의 유형을 가져 오는 함수입니다.
template <class Iterator>
inline typename iterator_traits<Iterator>::value_type* value_type(const Iterator&){
return static_cast<typename iterator_traits<Iterator>::value_type*>(0);
}
그리고 이것은 내가 value_type
기능 value_type*
대신 value_type
을 반환하는 이유를 궁금해 value_type
template <class ForwardIterator, class T>
inline void uninitialized_fill(ForwardIterator first, ForwardIterator last, const T& x){
__uninitialized_fill(first,last,x,value_type(first));
}
template <class ForwardIterator, class T, class T1>
inline void __uninitialized_fill(ForwardIterator first, ForwardIterator last, const T& x, T1*){
typedef typename __type_traits<T1>::is_POD_type is_POD;
__uninitialized_fill_aux(first, last, x, is_POD());
}
를 호출하는 기능입니다, 그 이유를 알아낼 수 없습니다. 제 생각에는 두 가지 해결책 모두 괜찮을 것으로 보입니다.
누군가가 나를 도울 수 있기를 바랍니다. 감사합니다.
+1 템플릿 매개 변수를 재정렬하고 방금 '__uninitialized_fill :: value_type> (first, last, x);로 호출했을 때 왜이 해킹 된 솔루션을 사용했는지 궁금합니다. –
어떤 구현을 살펴 봐야할지 모르겠다. 구현 버전을 권해 주시겠습니까? – Jiahao
@Pyjamas는'libC++'또는'libstdC++'프로젝트를 찾는다 –