Dep/G3D: Add static assert checks for Array functions being used with non-POD types

This commit is contained in:
jackpoz authored and Aokromes committed 2017-11-12 13:20:51 +01:00
1 parent 2cbb682d75
commit 790c2b6e80
1 file changed
+2
+2
View File
@@ -346,6 +346,7 @@ public:
/** Resizes this to match the size of \a other and then copies the data from other using memcpy. This is only safe for POD types */ /** Resizes this to match the size of \a other and then copies the data from other using memcpy. This is only safe for POD types */
void copyPOD(const Array<T>& other) { void copyPOD(const Array<T>& other) {
static_assert(std::is_pod<T>::value, "copyPOD called on non-POD type");
if (numAllocated < other.num) { if (numAllocated < other.num) {
m_memoryManager->free(data); m_memoryManager->free(data);
data = NULL; data = NULL;
@@ -364,6 +365,7 @@ public:
/** Resizes this to just barely match the size of \a other + itself and then copies the data to the end of the array from other using memcpy. /** Resizes this to just barely match the size of \a other + itself and then copies the data to the end of the array from other using memcpy.
This is only safe for POD types */ This is only safe for POD types */
void appendPOD(const Array<T>& other) { void appendPOD(const Array<T>& other) {
static_assert(std::is_pod<T>::value, "appendPOD called on non-POD type");
const size_t oldSize = num; const size_t oldSize = num;
num += other.num; num += other.num;
if (numAllocated < num) { if (numAllocated < num) {