SkTypes: use constexpr when appropriate
motivation: https://codereview.chromium.org/2000853003
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2004073002
Review-Url: https://codereview.chromium.org/2004073002
diff --git a/include/core/SkTypes.h b/include/core/SkTypes.h
index 6793e4c..13b662a 100644
--- a/include/core/SkTypes.h
+++ b/include/core/SkTypes.h
@@ -369,7 +369,7 @@
/** Faster than SkToBool for integral conditions. Returns 0 or 1
*/
-static inline int Sk32ToBool(uint32_t n) {
+static constexpr int Sk32ToBool(uint32_t n) {
return (n | (0-n)) >> 31;
}
@@ -408,11 +408,11 @@
return a;
}
-template <typename T> const T& SkTMin(const T& a, const T& b) {
+template <typename T> constexpr const T& SkTMin(const T& a, const T& b) {
return (a < b) ? a : b;
}
-template <typename T> const T& SkTMax(const T& a, const T& b) {
+template <typename T> constexpr const T& SkTMax(const T& a, const T& b) {
return (b < a) ? a : b;
}
@@ -428,7 +428,7 @@
}
/** Returns value pinned between min and max, inclusively. */
-template <typename T> static inline const T& SkTPin(const T& value, const T& min, const T& max) {
+template <typename T> static constexpr const T& SkTPin(const T& value, const T& min, const T& max) {
return SkTMax(SkTMin(value, max), min);
}