41class ARCCORE_COMMON_EXPORT ArrayMetaData
47 template <
typename>
friend class AbstractArray;
48 template <
typename>
friend class Array2;
49 template <
typename>
friend class Array;
50 template <
typename>
friend class SharedArray;
51 template <
typename>
friend class SharedArray2;
52 friend class AbstractArrayBase;
88 static void throwInvalidMetaDataForSharedArray ARCCORE_NORETURN();
89 static void throwNullExpected ARCCORE_NORETURN();
90 static void throwNotNullExpected ARCCORE_NORETURN();
91 static void throwUnsupportedSpecificAllocator ARCCORE_NORETURN();
92 static void overlapError ARCCORE_NORETURN(
const void* begin1,
Int64 size1,
93 const void* begin2,
Int64 size2);
97 using MemoryPointer =
void*;
98 using ConstMemoryPointer =
const void*;
108 _allocator()->deallocate(alloc_args, mem_info);
111 MemoryPointer _changeAllocator(
const MemoryAllocationOptions& new_allocator_opt,
const AllocatedMemoryInfo& current_info, Int64 sizeof_true_type, RunQueue* queue);
112 void _setMemoryLocationHint(eMemoryLocationHint new_hint,
void* ptr, Int64 sizeof_true_type);
113 void _setHostDeviceMemoryLocation(eHostDeviceMemoryLocation location);
114 void _copyFromMemory(MemoryPointer destination, ConstMemoryPointer source, Int64 sizeof_true_type, RunQueue* queue);
118 void _checkAllocator()
const;
119 MemoryAllocationArgs _getAllocationArgs()
const {
return allocation_options.
allocationArgs(); }
120 MemoryAllocationArgs _getAllocationArgs(RunQueue* queue)
const