With gcc 8 and later there is a compiler warning for Grid.h:
In file included from ../../../source/simulation2/helpers/Pathfinding.h:26, from ../../../source/simulation2/helpers/LongPathfinder.h:21, from ../../../source/simulation2/helpers/LongPathfinder.cpp:20: ../../../source/simulation2/helpers/Grid.h: In instantiation of ‘T* SparseGrid<T>::GetBucket(int, int) [with T = PathfindTile]’: ../../../source/simulation2/helpers/Grid.h:238:10: required from ‘T& SparseGrid<T>::get(int, int) [with T = PathfindTile]’ ../../../source/simulation2/helpers/LongPathfinder.cpp:406:41: required from here ../../../source/simulation2/helpers/Grid.h:194:10: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct PathfindTile’; use assignment or value-initialization instead [-Wclass-memaccess] memset(m_Data[b], 0, BucketSize*BucketSize*sizeof(T)); ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../../../source/simulation2/helpers/LongPathfinder.cpp:20: ../../../source/simulation2/helpers/LongPathfinder.h:63:8: note: ‘struct PathfindTile’ declared here struct PathfindTile ^~~~~~~~~~~~