summaryrefslogtreecommitdiffhomepage
path: root/compat
diff options
context:
space:
mode:
Diffstat (limited to 'compat')
-rw-r--r--compat/LooseQuadtree-impl.h32
-rw-r--r--compat/LooseQuadtree.h10
2 files changed, 30 insertions, 12 deletions
diff --git a/compat/LooseQuadtree-impl.h b/compat/LooseQuadtree-impl.h
index a8791a46..470377c8 100644
--- a/compat/LooseQuadtree-impl.h
+++ b/compat/LooseQuadtree-impl.h
@@ -2,9 +2,11 @@
#define LOOSEQUADTREE_LOOSEQUADTREE_IMPL_H
#include "LooseQuadtree.h"
+#include "compat/assert.hpp"
+#undef assert
+#define assert fm_assert
#include <array>
-#include <cassert>
#include <cstddef>
#include <deque>
#include <forward_list>
@@ -15,6 +17,15 @@
#include <type_traits>
#include <vector>
+#if defined __clang__ || defined __CLION_IDE__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wundefined-reinterpret-cast"
+#endif
+#ifdef __GNUG__
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wfloat-equal"
+#endif
+
namespace loose_quadtree {
namespace detail {
@@ -25,9 +36,9 @@ namespace detail {
class BlocksAllocator {
public:
- const static std::size_t kBlockAlign = alignof(long double);
- const static std::size_t kBlockSize = 16384;
- const static std::size_t kMaxAllowedAlloc = sizeof(void*) * 8;
+ static constexpr std::size_t kBlockAlign = alignof(long double);
+ static constexpr std::size_t kBlockSize = 16384;
+ static constexpr std::size_t kMaxAllowedAlloc = sizeof(void*) * 8;
BlocksAllocator();
~BlocksAllocator();
@@ -1480,14 +1491,14 @@ template <typename NumberT, typename ObjectT, typename BoundingBoxExtractorT>
template <typename NumberT, typename ObjectT, typename BoundingBoxExtractorT>
LooseQuadtree<NumberT, ObjectT, BoundingBoxExtractorT>::Query::
-Query(Query&& other) : pimpl_(other.pimpl_) {
+Query(Query&& other) noexcept : pimpl_(other.pimpl_) {
other.pimpl_ = nullptr;
}
template <typename NumberT, typename ObjectT, typename BoundingBoxExtractorT>
auto
LooseQuadtree<NumberT, ObjectT, BoundingBoxExtractorT>::Query::
-operator=(Query&& other) -> Query& {
+operator=(Query&& other) noexcept -> Query& {
this->~Query();
pimpl_ = other.pimpl_;
other.pimpl_ = nullptr;
@@ -1520,4 +1531,13 @@ Next() {
} //loose_quadtree
+#ifdef __GNUG__
+#pragma GCC diagnostic pop
+#endif
+#if defined __clang__ || defined __CLION_IDE__
+#pragma clang diagnostic pop
+#endif
+
+#undef assert
+
#endif //LOOSEQUADTREE_LOOSEQUADTREE_IMPL_H
diff --git a/compat/LooseQuadtree.h b/compat/LooseQuadtree.h
index a27c482d..90ad0aee 100644
--- a/compat/LooseQuadtree.h
+++ b/compat/LooseQuadtree.h
@@ -71,8 +71,8 @@ public:
Query() = delete;
Query(const Query&) = delete;
Query& operator=(const Query&) = delete;
- Query(Query&&);
- Query& operator=(Query&&);
+ Query(Query&&) noexcept;
+ Query& operator=(Query&&) noexcept;
bool EndOfQuery() const;
Object* GetCurrent() const;
@@ -85,8 +85,8 @@ public:
Impl* pimpl_;
};
- LooseQuadtree() {}
- ~LooseQuadtree() {}
+ LooseQuadtree() = default;
+ ~LooseQuadtree() = default;
LooseQuadtree(const LooseQuadtree&) = delete;
LooseQuadtree& operator=(const LooseQuadtree&) = delete;
@@ -113,6 +113,4 @@ private:
} //loose_quadtree
-#include "LooseQuadtree-impl.h"
-
#endif //LOOSEQUADTREE_LOOSEQUADTREE_H