@@ -757,32 +757,32 @@ class BasicMultiFieldArray<
757
757
template <typename ValueT> inline const ValueT* data () const { return std::get<ValueT*>(data_); }
758
758
759
759
/* *
760
- * @brief Returns first iterator which iterates over all field simulatenously
760
+ * @brief Returns first iterator which iterates over all fields simulatenously
761
761
*/
762
762
inline auto begin () { return view ().begin (); }
763
763
764
764
/* *
765
- * @brief Returns one-past last iterator which iterates over all field simulatenously
765
+ * @brief Returns one-past last iterator which iterates over all fields simulatenously
766
766
*/
767
767
inline auto end () { return view ().end (); }
768
768
769
769
/* *
770
- * @brief Returns first iterator which iterates over all field simulatenously
770
+ * @brief Returns first iterator which iterates over all fields simulatenously
771
771
*/
772
772
inline auto begin () const { return view ().begin (); }
773
773
774
774
/* *
775
- * @brief Returns one-past last iterator which iterates over all field simulatenously
775
+ * @brief Returns one-past last iterator which iterates over all fields simulatenously
776
776
*/
777
777
inline auto end () const { return view ().end (); }
778
778
779
779
/* *
780
- * @brief Returns first iterator which iterates over all field simulatenously
780
+ * @brief Returns first iterator which iterates over all fields simulatenously
781
781
*/
782
782
inline auto cbegin () const { return view ().begin (); }
783
783
784
784
/* *
785
- * @brief Returns one-past last iterator which iterates over all field simulatenously
785
+ * @brief Returns one-past last iterator which iterates over all fields simulatenously
786
786
*/
787
787
inline auto cend () const { return view ().end (); }
788
788
@@ -858,6 +858,132 @@ class BasicMultiFieldArray<
858
858
return BasicMultiFieldArray::template begin<ValueT>() + size_;
859
859
}
860
860
861
+ /* *
862
+ * @brief Returns first reverse iterator which iterates over all fields simulatenously
863
+ */
864
+ inline decltype (auto ) rbegin() { return reverse_iterator_adapter{std::prev (end ())}; }
865
+
866
+ /* *
867
+ * @brief Returns one-past last reverse iterator which iterates over all fields simulatenously
868
+ */
869
+ inline decltype (auto ) rend() { return reverse_iterator_adapter{std::prev (begin ())}; }
870
+
871
+ /* *
872
+ * @brief Returns first reverse iterator which iterates over all fields simulatenously
873
+ */
874
+ inline decltype (auto ) rbegin() const { return reverse_iterator_adapter{std::prev (end ())}; }
875
+
876
+ /* *
877
+ * @brief Returns one-past last reverse iterator which iterates over all fields simulatenously
878
+ */
879
+ inline decltype (auto ) rend() const { return reverse_iterator_adapter{std::prev (begin ())}; }
880
+
881
+ /* *
882
+ * @brief Returns first reverse iterator which iterates over all fields simulatenously
883
+ */
884
+ inline decltype (auto ) crbegin() const { return reverse_iterator_adapter{std::prev (end ())}; }
885
+
886
+ /* *
887
+ * @brief Returns one-past last reverse iterator which iterates over all fields simulatenously
888
+ */
889
+ inline decltype (auto ) crend() const { return reverse_iterator_adapter{std::prev (begin ())}; }
890
+
891
+ /* *
892
+ * @brief Returns reverse iterator to first element in a particular field sub-array
893
+ */
894
+ template <std::size_t Index> inline decltype (auto ) rbegin()
895
+ {
896
+ return reverse_iterator_adapter{std::prev (end<Index>())};
897
+ }
898
+
899
+ /* *
900
+ * @brief Returns reverse iterator to first element in a particular field sub-array
901
+ */
902
+ template <typename ValueT> inline decltype (auto ) rbegin()
903
+ {
904
+ return reverse_iterator_adapter{std::prev (end<ValueT>())};
905
+ }
906
+
907
+ /* *
908
+ * @brief Returns reverse iterator to first element in a particular field sub-array
909
+ */
910
+ template <std::size_t Index> inline decltype (auto ) rbegin() const
911
+ {
912
+ return reverse_iterator_adapter{std::prev (end<Index>())};
913
+ }
914
+
915
+ /* *
916
+ * @brief Returns reverse iterator to first element in a particular field sub-array
917
+ */
918
+ template <typename ValueT> inline decltype (auto ) rbegin() const
919
+ {
920
+ return reverse_iterator_adapter{std::prev (end<ValueT>())};
921
+ }
922
+
923
+ /* *
924
+ * @brief Returns reverse iterator to first element in a particular field sub-array
925
+ */
926
+ template <std::size_t Index> inline decltype (auto ) crbegin() const
927
+ {
928
+ return reverse_iterator_adapter{std::prev (end<Index>())};
929
+ }
930
+
931
+ /* *
932
+ * @brief Returns reverse iterator to first element in a particular field sub-array
933
+ */
934
+ template <typename ValueT> inline decltype (auto ) crbegin() const
935
+ {
936
+ return reverse_iterator_adapter{std::prev (end<ValueT>())};
937
+ }
938
+
939
+ /* *
940
+ * @brief Returns reverse iterator to one past last element in a particular field sub-array
941
+ */
942
+ template <std::size_t Index> inline decltype (auto ) rend()
943
+ {
944
+ return reverse_iterator_adapter{std::prev (begin<Index>())};
945
+ }
946
+
947
+ /* *
948
+ * @brief Returns reverse iterator to one past last element in a particular field sub-array
949
+ */
950
+ template <typename ValueT> inline decltype (auto ) rend()
951
+ {
952
+ return reverse_iterator_adapter{std::prev (begin<ValueT>())};
953
+ }
954
+
955
+ /* *
956
+ * @brief Returns reverse iterator to one past last element in a particular field sub-array
957
+ */
958
+ template <std::size_t Index> inline decltype (auto ) rend() const
959
+ {
960
+ return reverse_iterator_adapter{std::prev (begin<Index>())};
961
+ }
962
+
963
+ /* *
964
+ * @brief Returns reverse iterator to one past last element in a particular field sub-array
965
+ */
966
+ template <typename ValueT> inline decltype (auto ) rend() const
967
+ {
968
+ return reverse_iterator_adapter{std::prev (begin<ValueT>())};
969
+ }
970
+
971
+ /* *
972
+ * @brief Returns reverse iterator to one past last element in a particular field sub-array
973
+ */
974
+ template <std::size_t Index> inline decltype (auto ) crend() const
975
+ {
976
+ return reverse_iterator_adapter{std::prev (begin<Index>())};
977
+ }
978
+
979
+ /* *
980
+ * @brief Returns reverse iterator to one past last element in a particular field sub-array
981
+ */
982
+ template <typename ValueT> inline decltype (auto ) crend() const
983
+ {
984
+ return reverse_iterator_adapter{std::prev (begin<ValueT>())};
985
+ }
986
+
861
987
/* *
862
988
* @brief Returns allocator adapter
863
989
*/
0 commit comments