5 #ifndef VCCC_ITERATOR_PROJECTED_HPP
6 #define VCCC_ITERATOR_PROJECTED_HPP
23 struct projected_impl_difference_type {
24 using difference_type = iter_difference_t<I>;
27 struct projected_impl_difference_type<I, false> {};
33 indirectly_readable<I>,
34 indirectly_regular_unary_invocable<Proj, I>
37 struct projected_impl {
38 struct type : projected_impl_difference_type<I> {
39 using value_type = remove_cvref_t<indirect_result_t<Proj, I>>;
41 indirect_result_t<Proj&, I>
operator*()
const;
45 template<
typename I,
typename Proj>
46 struct projected_impl<I, Proj, false> {};
68 template<
typename I,
typename Proj>
69 using projected =
typename detail::projected_impl<I, Proj>::type;
72 template<
typename I,
typename Proj>
typename detail::projected_impl< I, Proj >::type projected
Definition: projected.hpp:69
constexpr MatrixMulMatrix< E1, E2 > operator*(const MatrixBase< E1 > &lhs, const MatrixBase< E2 > &rhs)
Definition: matrix_mul_matrix.hpp:77
Definition: directory.h:12
constexpr VCCC_INLINE_OR_STATIC detail::element_niebloid< 1 > value
Definition: key_value.hpp:35
Definition: has_typename_type.hpp:18