44#pragma ide diagnostic ignored "cppcoreguidelines-owning-memory"
55#pragma ide diagnostic ignored "UnreachableCode" // -- allow for alternate non-c-style memory management
66
7- #include " MultiArray.hpp"
8- #include " opencmw.hpp"
9-
107#include < format>
118
129#include < algorithm>
@@ -34,6 +31,10 @@ using polymorphic_allocator = std::experimental::pmr::polymorphic_allocator<T>;
3431#include < utility>
3532#include < vector>
3633
34+ #include < opencmw.hpp>
35+
36+ #include " MultiArray.hpp"
37+
3738namespace opencmw {
3839
3940/* special memory resource which explicitly uses malloc, free and allows the containers
@@ -210,7 +211,7 @@ struct IoBuffer {
210211 }
211212
212213 template <MetaInfo meta = WITH, typename Container>
213- forceinline constexpr void putBoolContainer (const Container &values) noexcept {
214+ OPENCMW_FORCEINLINE constexpr void putBoolContainer (const Container &values) noexcept {
214215 const std::size_t size = values.size ();
215216 const std::size_t byteToCopy = size * sizeof (bool );
216217 if constexpr (meta == WITH) {
@@ -308,7 +309,7 @@ struct IoBuffer {
308309 constexpr void clear () noexcept { _position = _size = 0 ; }
309310
310311 template <bool checkRange = true >
311- forceinline constexpr void skip (int bytes) noexcept (!checkRange) {
312+ OPENCMW_FORCEINLINE constexpr void skip (int bytes) noexcept (!checkRange) {
312313 if constexpr (checkRange) {
313314 if (_position + static_cast <std::size_t >(bytes) > size ()) { // catches both over and underflow
314315 throw std::out_of_range (std::format (" requested index {} is out-of-range [0,{}]" , static_cast <std::ptrdiff_t >(_position) + bytes, _size));
@@ -318,7 +319,7 @@ struct IoBuffer {
318319 }
319320
320321 template <typename R, bool checkRange = true >
321- forceinline constexpr R &at (const size_t index) noexcept (!checkRange) {
322+ OPENCMW_FORCEINLINE constexpr R &at (const size_t index) noexcept (!checkRange) {
322323 if constexpr (checkRange) {
323324 if (index >= _size) {
324325 throw std::out_of_range (std::format (" requested index {} is out-of-range [0,{}]" , index, _size));
@@ -351,7 +352,7 @@ struct IoBuffer {
351352 }
352353
353354 template <MetaInfo meta = WITH, Number I>
354- forceinline constexpr void put (const I &value) noexcept {
355+ OPENCMW_FORCEINLINE constexpr void put (const I &value) noexcept {
355356 constexpr std::size_t byteToCopy = sizeof (I);
356357 reserve_spare (byteToCopy);
357358
@@ -360,7 +361,7 @@ struct IoBuffer {
360361 }
361362
362363 template <MetaInfo meta = WITH, StringLike I>
363- forceinline constexpr void put (const I &value) noexcept {
364+ OPENCMW_FORCEINLINE constexpr void put (const I &value) noexcept {
364365 const std::size_t bytesToCopy = value.size () * sizeof (char );
365366 reserve_spare (bytesToCopy + sizeof (int32_t ) + sizeof (char )); // educated guess
366367 if constexpr (meta == WITH) {
@@ -376,24 +377,24 @@ struct IoBuffer {
376377 }
377378
378379 template <SupportedType I, size_t size>
379- forceinline constexpr void put (I const (&values)[size]) noexcept { put (std::span<const I>(values, size)); } // NOLINT int a[30]; OK <-> std::array<int, 30>
380+ OPENCMW_FORCEINLINE constexpr void put (I const (&values)[size]) noexcept { put (std::span<const I>(values, size)); } // NOLINT int a[30]; OK <-> std::array<int, 30>
380381 template <SupportedType I>
381- forceinline constexpr void put (std::vector<I> const &values) noexcept { put (std::span<const I>(values.data (), values.size ())); }
382+ OPENCMW_FORCEINLINE constexpr void put (std::vector<I> const &values) noexcept { put (std::span<const I>(values.data (), values.size ())); }
382383 template <SupportedType I, size_t size>
383- forceinline constexpr void put (std::array<I, size> const &values) noexcept { put (std::span<const I>(values.data (), values.size ())); }
384+ OPENCMW_FORCEINLINE constexpr void put (std::array<I, size> const &values) noexcept { put (std::span<const I>(values.data (), values.size ())); }
384385
385386 template <MetaInfo meta = WITH>
386- forceinline constexpr void put (std::vector<bool > const &values) noexcept {
387+ OPENCMW_FORCEINLINE constexpr void put (std::vector<bool > const &values) noexcept {
387388 putBoolContainer<meta>(values);
388389 }
389390
390391 template <MetaInfo meta = WITH, size_t size>
391- forceinline constexpr void put (std::array<bool , size> const &values) noexcept {
392+ OPENCMW_FORCEINLINE constexpr void put (std::array<bool , size> const &values) noexcept {
392393 putBoolContainer<meta>(values);
393394 }
394395
395396 template <bool checkRange = true >
396- [[nodiscard]] forceinline constexpr std::string_view asString (const size_t index = 0U , const int requestedSize = -1 ) const noexcept (!checkRange) {
397+ [[nodiscard]] OPENCMW_FORCEINLINE constexpr std::string_view asString (const size_t index = 0U , const int requestedSize = -1 ) const noexcept (!checkRange) {
397398 const auto unsigned_size = static_cast <std::size_t >(requestedSize);
398399 if constexpr (checkRange) {
399400 if (index > _size) {
@@ -410,7 +411,7 @@ struct IoBuffer {
410411 }
411412
412413 template <typename R, typename RawType = std::remove_cvref_t <R>>
413- [[nodiscard]] forceinline constexpr R get () const noexcept {
414+ [[nodiscard]] OPENCMW_FORCEINLINE constexpr R get () const noexcept {
414415 if constexpr (Number<R>) {
415416 const std::size_t localPosition = _position;
416417 _position += sizeof (R);
@@ -427,7 +428,7 @@ struct IoBuffer {
427428 }
428429
429430 template <ArrayOrVector Container, bool checkRange = false >
430- forceinline constexpr Container &getArray (Container &input, const std::size_t requestedSize = SIZE_MAX) const noexcept (!checkRange) {
431+ OPENCMW_FORCEINLINE constexpr Container &getArray (Container &input, const std::size_t requestedSize = SIZE_MAX) const noexcept (!checkRange) {
431432 using R = Container::value_type;
432433 const auto arraySize = std::min (static_cast <std::size_t >(get<int32_t >()), _size - _position);
433434 const std::size_t minArraySize = std::min (arraySize, requestedSize);
@@ -456,14 +457,14 @@ struct IoBuffer {
456457 }
457458
458459 template <SupportedType R>
459- forceinline constexpr std::vector<R> getArray (std::vector<R> &&input = std::vector<R>(), const std::size_t requestedSize = SIZE_MAX) noexcept { return getArray (input, requestedSize); }
460+ OPENCMW_FORCEINLINE constexpr std::vector<R> getArray (std::vector<R> &&input = std::vector<R>(), const std::size_t requestedSize = SIZE_MAX) noexcept { return getArray (input, requestedSize); }
460461 template <SupportedType R, std::size_t size>
461- [[maybe_unused]] forceinline constexpr std::array<R, size> getArray (std::array<R, size> &&input = std::array<R, size>(), const std::size_t requestedSize = size) noexcept { return getArray (input, requestedSize); }
462+ [[maybe_unused]] OPENCMW_FORCEINLINE constexpr std::array<R, size> getArray (std::array<R, size> &&input = std::array<R, size>(), const std::size_t requestedSize = size) noexcept { return getArray (input, requestedSize); }
462463
463464 template <StringArray R, typename T = typename R::value_type>
464- [[nodiscard]] forceinline constexpr R &get (R &input, const std::size_t requestedSize = SIZE_MAX) noexcept { return getArray (input, requestedSize); }
465+ [[nodiscard]] OPENCMW_FORCEINLINE constexpr R &get (R &input, const std::size_t requestedSize = SIZE_MAX) noexcept { return getArray (input, requestedSize); }
465466 template <StringArray R, typename T = typename R::value_type>
466- [[nodiscard]] forceinline constexpr R get (R &&input = R(), const std::size_t requestedSize = SIZE_MAX) noexcept { return getArray (std::forward<R>(input), requestedSize); }
467+ [[nodiscard]] OPENCMW_FORCEINLINE constexpr R get (R &&input = R(), const std::size_t requestedSize = SIZE_MAX) noexcept { return getArray (std::forward<R>(input), requestedSize); }
467468};
468469
469470} // namespace opencmw
0 commit comments