12#ifndef ARCANE_UTILS_ARRAYCONVERTER_H
13#define ARCANE_UTILS_ARRAYCONVERTER_H
17#include "arcane/utils/Array.h"
28template <
typename TypeA,
typename TypeB>
36 output[i] = (TypeB)input[i];
41 output[i] = (TypeA)input[i];
51template <
typename InputType,
typename OutputType,
67 ArrayConverter(Converter& conv)
72 ArrayConverter(
Integer nb, InputType* values)
80 m_input_array = values;
87 m_input_array = values;
91 ~ArrayConverter()
noexcept(
false)
93 m_converter.convertFromBToA(m_output_array, m_input_array);
98 m_input_array = values;
102 void notifyOutputChanged()
104 m_converter.convertFromBToA(m_output_array, m_input_array);
107 void notifyInputChanged()
109 m_converter.convertFromAToB(m_input_array, m_output_array);
117 ARCANE_DEPRECATED_280 iterator
begin() {
return m_output_array.begin(); }
121 ARCANE_DEPRECATED_280 const_iterator
begin()
const {
return m_output_array.begin(); }
122 OutputArrayType& array() {
return m_output_array; }
123 OutputArrayType& array()
const {
return m_output_array; }
124 pointer data() {
return m_output_array.
data(); }
125 const_pointer data()
const {
return m_output_array.data(); }
131 m_output_array.resize(m_input_array.size());
132 m_converter.convertFromAToB(m_input_array, m_output_array);
135 ArrayView<InputType> m_input_array;
136 OutputArrayType m_output_array;
137 Converter m_converter;
148template <
typename InputType>
165 ArrayConverter(
Integer nb, InputType* values)
172 m_input_array = values;
179 m_input_array = values;
187 ARCANE_DEPRECATED_280 iterator
begin() {
return m_input_array.begin(); }
191 ARCANE_DEPRECATED_280 const_iterator
begin()
const {
return m_input_array.begin(); }
192 OutputArrayType& array() {
return m_input_array; }
193 OutputArrayType& array()
const {
return m_input_array; }
194 void notifyOutputChanged() {}
195 void notifyInputChanged() {}
196 pointer data() {
return m_input_array.
data(); }
197 const_pointer data()
const {
return m_input_array.data(); }
201 ArrayView<InputType> m_input_array;
210template <
typename InputType,
typename OutputType,
212class ConstArrayConverter
222 ConstArrayConverter()
226 ConstArrayConverter(Converter& conv)
231 ConstArrayConverter(
Integer nb,
const InputType* values)
239 m_input_array = values;
246 m_input_array = values;
250 ~ConstArrayConverter() {}
257 ARCANE_DEPRECATED_280 const_iterator
begin()
const {
return m_output_array.begin(); }
258 OutputArrayType& array()
const {
return m_output_array; }
259 const_pointer data()
const {
return m_output_array.
data(); }
265 m_output_array.resize(m_input_array.size());
266 m_converter.convertFromAToB(m_input_array, m_output_array);
269 ConstArrayView<InputType> m_input_array;
270 UniqueArray<OutputType> m_output_array;
271 Converter m_converter;
282template <
typename InputType>
293 ConstArrayConverter()
297 ConstArrayConverter(
Integer nb,
const InputType* values)
304 m_input_array = values;
307 ~ConstArrayConverter()
316 ARCANE_DEPRECATED_280 const_iterator
begin()
const {
return m_input_array.begin(); }
317 OutputArrayType& array()
const {
return m_input_array; }
318 const_pointer data()
const {
return m_input_array.
data(); }
322 ConstArrayView<InputType> m_input_array;
const value_type * const_pointer
Constant pointer type of an array element.
ArrayIterator< pointer > iterator
Type of the iterator over an array element.
value_type * pointer
Pointer type of an array element.
ArrayIterator< const_pointer > const_iterator
Type of the constant iterator over an array element.
ARCANE_DEPRECATED_280 iterator begin()
ARCANE_DEPRECATED_280 const_iterator begin() const
Modifiable view of an array of type T.
ArrayIterator< pointer > iterator
constexpr const_pointer data() const noexcept
Pointer to the start of the view.
ArrayIterator< const_pointer > const_iterator
const value_type * const_pointer
const T * data() const
Access to the root of the array without any protection.
ARCANE_DEPRECATED_280 const_iterator begin() const
Constant view of an array of type T.
constexpr const_pointer data() const noexcept
Pointer to the allocated memory.
const value_type * const_pointer
ArrayIterator< const_pointer > const_iterator
constexpr Integer size() const noexcept
Number of elements in the array.
1D data vector with value semantics (STL style).
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Int32 Integer
Type representing an integer.