diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2023-12-21 15:57:06 -0500 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2023-12-23 11:42:23 -0500 |
| commit | bbd5fe6aedfd9288f3fd64754c700bfe9066b134 (patch) | |
| tree | c10f87a4293eddba2c67dfbfe2fda0fda4d9e41a /src/dynamic-array.hpp | |
| parent | a2e3fea7c7c3efb882e0f48add74857691ef67dc (diff) | |
check assignable in DynArray
Diffstat (limited to 'src/dynamic-array.hpp')
| -rw-r--r-- | src/dynamic-array.hpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/dynamic-array.hpp b/src/dynamic-array.hpp index bcc0d43..307983d 100644 --- a/src/dynamic-array.hpp +++ b/src/dynamic-array.hpp @@ -163,7 +163,11 @@ template <typename T> inline void DynArray<T>::Push(const T &val) { } auto itemPtr = this->ptr + (sizeof(T) * this->elementCount); auto &targetItem = *reinterpret_cast<T *>(itemPtr); - targetItem = val; + if constexpr (std::is_assignable<T&, const T&>::value) { + targetItem = val; + } else { + memcpy(targetItem, val, sizeof(T)); + } this->elementCount += 1; } |
