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
This commit is contained in:
parent
a746cef825
commit
3060b98842
|
@ -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)
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -14,10 +14,6 @@
|
|||
|
||||
#include "BLI_utildefines.h"
|
||||
|
||||
#ifdef WITH_GMP
|
||||
# include "BLI_math_mpq.hh"
|
||||
#endif
|
||||
|
||||
namespace blender {
|
||||
|
||||
/* clang-format off */
|
||||
|
|
Loading…
Reference in New Issue