@@ -498,8 +498,8 @@ namespace xt
498498 inline value_type access (const tuple_type& t, size_type axis, It first, It last) const
499499 {
500500 // trim off extra indices if provided to match behavior of containers
501- auto dim_offset = std::distance (first, last) - std::get<0 >(t).dimension ();
502- size_t axis_dim = *(first + axis + dim_offset);
501+ auto dim_offset = static_cast < size_t >( std::distance (first, last) ) - std::get<0 >(t).dimension ();
502+ size_t axis_dim = static_cast < size_t >( *(first + static_cast <std:: ptrdiff_t >( axis + dim_offset)) );
503503 auto match = [&](auto & arr)
504504 {
505505 if (axis_dim >= arr.shape ()[axis])
@@ -520,7 +520,7 @@ namespace xt
520520 const size_t stride = std::accumulate (
521521 shape.begin () + i + 1 ,
522522 shape.end (),
523- 1 ,
523+ size_t ( 1 ) ,
524524 std::multiplies<size_t >()
525525 );
526526 if (i == axis)
@@ -529,11 +529,13 @@ namespace xt
529529 }
530530 else
531531 {
532- const auto len = (*(first + i + dim_offset));
532+ const auto len = static_cast <size_t >(
533+ *(first + static_cast <std::ptrdiff_t >(i + dim_offset))
534+ );
533535 offset += len * stride;
534536 }
535537 }
536- const auto element = arr.begin () + offset;
538+ const auto element = arr.begin () + static_cast <std:: ptrdiff_t >( offset) ;
537539 return *element;
538540 };
539541
@@ -576,16 +578,18 @@ namespace xt
576578 const size_t stride = std::accumulate (
577579 shape.begin () + i + 1 ,
578580 shape.end (),
579- 1 ,
581+ size_t ( 1 ) ,
580582 std::multiplies<size_t >()
581583 );
582- const auto len = (*(first + i + after_axis));
584+ const auto len = static_cast <size_t >(
585+ *(first + static_cast <std::ptrdiff_t >(i + after_axis))
586+ );
583587 offset += len * stride;
584588 }
585- const auto element = arr.begin () + offset;
589+ const auto element = arr.begin () + static_cast <std:: ptrdiff_t >( offset) ;
586590 return *element;
587591 };
588- size_type i = *(first + axis);
592+ size_type i = static_cast <size_type>( *(first + static_cast <std:: ptrdiff_t >( axis)) );
589593 return apply<value_type>(i, get_item, t);
590594 }
591595 };
@@ -960,10 +964,12 @@ namespace xt
960964 detail::make_xgenerator (detail::repeat_impl<xclosure_t <E>>(std::forward<E>(e), I), shape)...
961965 );
962966#else
963- return std::make_tuple (detail::make_xgenerator (
964- detail::repeat_impl<xclosure_t <E>>(std::forward<E>(e), I),
965- {e.shape ()[0 ]...}
966- )...);
967+ return std::make_tuple (
968+ detail::make_xgenerator (
969+ detail::repeat_impl<xclosure_t <E>>(std::forward<E>(e), I),
970+ {e.shape ()[0 ]...}
971+ )...
972+ );
967973#endif
968974 }
969975 }
0 commit comments