diff --git a/source/adios2/core/adiosFunctions.cpp b/source/adios2/core/adiosFunctions.cpp index 6c6901880911115bf499f3e82e1c070229cd2bfe..3394c294669a9d9e4dc927b0b0014655e6df1084 100644 --- a/source/adios2/core/adiosFunctions.cpp +++ b/source/adios2/core/adiosFunctions.cpp @@ -662,6 +662,16 @@ void ConvertUint64VectorToSizetVector(const std::vector<std::uint64_t> &in, } } +void Uint64ArrayToSizetVector(const std::size_t nElements, const uint64_t *in, + std::vector<std::size_t> &out) +{ + out.resize(nElements); + for (std::size_t i = 0; i < nElements; i++) + { + out[i] = static_cast<std::size_t>(in[i]); + } +} + std::vector<std::size_t> Uint64ArrayToSizetVector(const std::size_t nElements, const uint64_t *in) { diff --git a/source/adios2/core/adiosFunctions.h b/source/adios2/core/adiosFunctions.h index 545c5c3e953b65823d0d7497d9f2cc35593758ee..a66daa87ddf5582a7e8fc41475b10d212ebf71d7 100644 --- a/source/adios2/core/adiosFunctions.h +++ b/source/adios2/core/adiosFunctions.h @@ -188,6 +188,13 @@ std::vector<int> CSVToVectorInt(const std::string csv); */ void ConvertUint64VectorToSizetVector(const std::vector<std::uint64_t> &in, std::vector<std::size_t> &out); +/** Convert a C array of uint64_t elements to a vector of std::size_t elements + * @param number of elements + * @param input array of uint64_t elements + * @param vector of std::size_t elements. It will be resized to nElements. + */ +void Uint64ArrayToSizetVector(const std::size_t nElements, const uint64_t *in, + std::vector<std::size_t> &out); /** Convert a C array of uint64_t elements to a vector of std::size_t elements * @param number of elements @@ -196,7 +203,6 @@ void ConvertUint64VectorToSizetVector(const std::vector<std::uint64_t> &in, */ std::vector<std::size_t> Uint64ArrayToSizetVector(const std::size_t nElements, const uint64_t *in); - /** * Converts a vector of dimensions to a CSV string * @param dims vector of dimensions