55class NumArrayContainer
56:
private Arccore::Array<DataType>
61 using BaseClass = Arccore::Array<DataType>;
62 using ThatClass = NumArrayContainer<DataType>;
63 static constexpr Int32 _typeSize() {
return static_cast<Int32>(
sizeof(DataType)); }
67 using BaseClass::capacity;
68 using BaseClass::debugName;
69 using BaseClass::fill;
70 using BaseClass::setDebugName;
74 explicit NumArrayContainer(
const MemoryAllocationOptions& a)
77 this->_initFromAllocator(a, 0);
82 explicit NumArrayContainer()
83 : NumArrayContainer(_getDefaultAllocator())
88 : NumArrayContainer(_getDefaultAllocator(r))
90 m_memory_ressource = r;
93 NumArrayContainer(
const ThatClass& rhs)
94 : NumArrayContainer(rhs.allocationOptions())
96 m_memory_ressource = rhs.m_memory_ressource;
100 NumArrayContainer(ThatClass&& rhs)
101 : BaseClass(std::move(rhs))
102 , m_memory_ressource(rhs.m_memory_ressource)
108 ThatClass& operator=(
const ThatClass& rhs) =
delete;
110 ThatClass& operator=(ThatClass&& rhs)
113 m_memory_ressource = rhs.m_memory_ressource;
119 void resize(
Int64 new_size) { BaseClass::_resizeNoInit(new_size); }
124 void swap(NumArrayContainer<DataType>& rhs)
126 BaseClass::_swap(rhs);
127 std::swap(m_memory_ressource, rhs.m_memory_ressource);
130 IMemoryAllocator* allocator()
const {
return BaseClass::allocator(); }
132 void copyInitializerList(std::initializer_list<DataType> alist)
137 for (
auto x : alist) {
153 _memoryAwareCopy(v, input_ressource, queue);
161 NumArrayBaseCommon::_memoryAwareFill(
asWritableBytes(destination), destination.
size(), &v, _typeSize(), indexes, queue);
169 NumArrayBaseCommon::_memoryAwareFill(
asWritableBytes(destination), destination.
size(), &v, _typeSize(), queue);
176 NumArrayBaseCommon::_memoryAwareCopy(
asBytes(v), input_ressource,
179 void _resizeAndCopy(
const ThatClass& v)
181 this->_resizeNoInit(v.to1DSpan().size());
182 _memoryAwareCopy(v, v.memoryRessource(),
nullptr);
Impl::SpanTypeFromSize< conststd::byte, SizeType >::SpanType asBytes(const SpanImpl< DataType, SizeType, Extent > &s)
Converti la vue en un tableau d'octets non modifiables.
Impl::SpanTypeFromSize< std::byte, SizeType >::SpanType asWritableBytes(const SpanImpl< DataType, SizeType, Extent > &s)
Converti la vue en un tableau d'octets modifiables.