186  using value_type = 
Int32;
 
  187  using iterator_category = std::random_access_iterator_tag;
 
  188  using reference = value_type&;
 
  189  using difference_type = ptrdiff_t;
 
  190  using pointer = void;
 
  192  using ThatClass = IndexIterator;
 
  196  IndexIterator() = 
default;
 
  197  ARCCORE_HOST_DEVICE 
explicit IndexIterator(
Int32 v)
 
  203  ARCCORE_HOST_DEVICE IndexIterator& operator++()
 
  208  ARCCORE_HOST_DEVICE IndexIterator operator+(
Int32 x)
 const 
  210    return IndexIterator(m_value + x);
 
  212  ARCCORE_HOST_DEVICE 
friend ThatClass operator+(
Int32 x, 
const ThatClass& iter)
 
  214    return ThatClass(iter.m_value + x);
 
  216  ARCCORE_HOST_DEVICE IndexIterator operator-(
Int32 x)
 const 
  218    return IndexIterator(m_value - x);
 
  220  ARCCORE_HOST_DEVICE 
Int32 operator-(
const ThatClass& x)
 const 
  222    return m_value - x.m_value;
 
  224  ARCCORE_HOST_DEVICE 
Int32 operator*()
 const { 
return m_value; }
 
  225  ARCCORE_HOST_DEVICE 
Int32 operator[](
Int32 x)
 const { 
return m_value + x; }
 
  226  ARCCORE_HOST_DEVICE 
friend bool operator==(
const ThatClass& a, 
const ThatClass& b)
 
  228    return a.m_value == b.m_value;
 
  230  ARCCORE_HOST_DEVICE 
friend bool operator<(
const ThatClass& iter1, 
const ThatClass& iter2)
 
  232    return iter1.m_value < iter2.m_value;
 
 
  303class GetterLambdaIterator
 
  307  using value_type = DataType;
 
  308  using iterator_category = std::random_access_iterator_tag;
 
  309  using reference = DataType&;
 
  310  using difference_type = ptrdiff_t;
 
  311  using pointer = void;
 
  312  using ThatClass = GetterLambdaIterator<DataType, GetterLambda>;
 
  316  ARCCORE_HOST_DEVICE GetterLambdaIterator(
const GetterLambda& s)
 
  319  ARCCORE_HOST_DEVICE 
explicit GetterLambdaIterator(
const GetterLambda& s, 
Int32 v)
 
  326  ARCCORE_HOST_DEVICE ThatClass& operator++()
 
  331  ARCCORE_HOST_DEVICE ThatClass& operator+=(
Int32 x)
 
  336  ARCCORE_HOST_DEVICE 
friend ThatClass operator+(
const ThatClass& iter, 
Int32 x)
 
  338    return ThatClass(iter.m_lambda, iter.m_index + x);
 
  340  ARCCORE_HOST_DEVICE 
friend ThatClass operator+(
Int32 x, 
const ThatClass& iter)
 
  342    return ThatClass(iter.m_lambda, iter.m_index + x);
 
  344  ARCCORE_HOST_DEVICE 
friend bool operator<(
const ThatClass& iter1, 
const ThatClass& iter2)
 
  346    return iter1.m_index < iter2.m_index;
 
  349  ARCCORE_HOST_DEVICE ThatClass operator-(
Int32 x)
 const 
  351    return ThatClass(m_lambda, m_index - x);
 
  353  ARCCORE_HOST_DEVICE 
Int32 operator-(
const ThatClass& x)
 const 
  355    return m_index - x.m_index;
 
  357  ARCCORE_HOST_DEVICE value_type operator*()
 const 
  359    return m_lambda(m_index);
 
  361  ARCCORE_HOST_DEVICE value_type operator[](
Int32 x)
 const { 
return m_lambda(m_index + x); }
 
  362  ARCCORE_HOST_DEVICE 
friend bool operator!=(
const ThatClass& a, 
const ThatClass& b)
 
  364    return a.m_index != b.m_index;
 
  366  ARCCORE_HOST_DEVICE 
friend bool operator==(
const ThatClass& a, 
const ThatClass& b)
 
  368    return a.m_index == b.m_index;
 
  374  GetterLambda m_lambda;
 
 
  385class SetterLambdaIterator
 
  394    ARCCORE_HOST_DEVICE 
explicit Setter(
const SetterLambda& s, 
Int32 output_index)
 
  395    : m_output_index(output_index)
 
  398    ARCCORE_HOST_DEVICE 
void operator=(
Int32 input_index)
 
  400      m_lambda(input_index, m_output_index);
 
  402    Int32 m_output_index = 0;
 
  403    SetterLambda m_lambda;
 
 
  406  using value_type = 
Int32;
 
  407  using iterator_category = std::random_access_iterator_tag;
 
  409  using difference_type = ptrdiff_t;
 
  410  using pointer = void;
 
  412  using ThatClass = SetterLambdaIterator<SetterLambda>;
 
  416#ifdef ARCANE_USE_LAMBDA_STORAGE 
  419  using StorageType = SetterLambda;
 
  424  SetterLambdaIterator() = 
default;
 
  425  ARCCORE_HOST_DEVICE SetterLambdaIterator(
const SetterLambda& s)
 
  435#ifdef ARCANE_USE_LAMBDA_STORAGE 
  436  ARCCORE_HOST_DEVICE SetterLambdaIterator(
const LambdaStorage<SetterLambda>& s, 
Int32 v)
 
  444  ARCCORE_HOST_DEVICE SetterLambdaIterator<SetterLambda>& operator++()
 
  449  ARCCORE_HOST_DEVICE SetterLambdaIterator<SetterLambda>& operator--()
 
  454  ARCCORE_HOST_DEVICE reference 
operator*()
 const 
  456    return Setter(m_lambda, m_index);
 
  458  ARCCORE_HOST_DEVICE reference operator[](Int32 x)
 const { 
return Setter(m_lambda, m_index + x); }
 
  459  ARCCORE_HOST_DEVICE 
friend ThatClass operator+(Int32 x, 
const ThatClass& iter)
 
  461    return ThatClass(iter.m_lambda, iter.m_index + x);
 
  463  ARCCORE_HOST_DEVICE 
friend ThatClass operator+(
const ThatClass& iter, Int32 x)
 
  465    return ThatClass(iter.m_lambda, iter.m_index + x);
 
  467  ARCCORE_HOST_DEVICE 
friend ThatClass operator-(
const ThatClass& iter, Int32 x)
 
  469    return ThatClass(iter.m_lambda, iter.m_index - x);
 
  471  ARCCORE_HOST_DEVICE 
friend Int32 operator-(
const ThatClass& iter1, 
const ThatClass& iter2)
 
  473    return iter1.m_index - iter2.m_index;
 
  475  ARCCORE_HOST_DEVICE 
friend bool operator<(
const ThatClass& iter1, 
const ThatClass& iter2)
 
  477    return iter1.m_index < iter2.m_index;
 
  483  StorageType m_lambda;
 
 
Impl::SpanTypeFromSize< std::byte, SizeType >::SpanType asWritableBytes(const SpanImpl< DataType, SizeType, Extent > &s)
Converti la vue en un tableau d'octets modifiables.