Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorHans Goudey <h.goudey@me.com>2022-05-31 17:55:14 +0300
committerHans Goudey <h.goudey@me.com>2022-05-31 17:55:14 +0300
commit3060b98842fe1b1bca6cce6678ee8a022583e63f (patch)
treee1f700ec7a92be0e6909ef450ee2d837f6f65f7a /source
parenta746cef82526528e6037ba205b49ad8c883a0b91 (diff)
Cleanup: Simplify dependencies for GMP math header
Previously, the base math headers included GMP headers in all cases. This was problematic because we don't want all modules that use the math headers to depend on GMP, and the unnecessary includes could theoretically have detrimental effects to compile times. Now `BLI_math_mpq.hh` depends on `BLI_math_base.hh`, so if a file needs to use exact arithmatic, it can just include the former. Differential Revision: https://developer.blender.org/D15079
Diffstat (limited to 'source')
-rw-r--r--source/blender/blenlib/BLI_math_base.hh12
-rw-r--r--source/blender/blenlib/BLI_math_mpq.hh6
-rw-r--r--source/blender/blenlib/BLI_math_vec_types.hh4
3 files changed, 7 insertions, 15 deletions
diff --git a/source/blender/blenlib/BLI_math_base.hh b/source/blender/blenlib/BLI_math_base.hh
index 034c6968c94..3057e30dc03 100644
--- a/source/blender/blenlib/BLI_math_base.hh
+++ b/source/blender/blenlib/BLI_math_base.hh
@@ -14,19 +14,9 @@
#include "BLI_math_base_safe.h"
#include "BLI_utildefines.h"
-#ifdef WITH_GMP
-# include "BLI_math_mpq.hh"
-#endif
-
namespace blender::math {
-template<typename T>
-inline constexpr bool is_math_float_type = (std::is_floating_point_v<T>
-#ifdef WITH_GMP
- || std::is_same_v<T, mpq_class>
-#endif
-);
-
+template<typename T> inline constexpr bool is_math_float_type = std::is_floating_point_v<T>;
template<typename T> inline constexpr bool is_math_integral_type = std::is_integral_v<T>;
template<typename T> inline bool is_zero(const T &a)
diff --git a/source/blender/blenlib/BLI_math_mpq.hh b/source/blender/blenlib/BLI_math_mpq.hh
index 7b43c90da84..02c92705323 100644
--- a/source/blender/blenlib/BLI_math_mpq.hh
+++ b/source/blender/blenlib/BLI_math_mpq.hh
@@ -19,4 +19,10 @@
*/
# include "gmpxx.h"
+# include "BLI_math_base.hh"
+
+namespace blender::math {
+template<> inline constexpr bool is_math_float_type<mpq_class> = true;
+}
+
#endif /* WITH_GMP */
diff --git a/source/blender/blenlib/BLI_math_vec_types.hh b/source/blender/blenlib/BLI_math_vec_types.hh
index e36bbedee32..7f20881dfa3 100644
--- a/source/blender/blenlib/BLI_math_vec_types.hh
+++ b/source/blender/blenlib/BLI_math_vec_types.hh
@@ -14,10 +14,6 @@
#include "BLI_utildefines.h"
-#ifdef WITH_GMP
-# include "BLI_math_mpq.hh"
-#endif
-
namespace blender {
/* clang-format off */