[Mesa-dev] [PATCH 06/15] util: Add EXPLICIT_CONVERSION macro.
Francisco Jerez
currojerez at riseup.net
Wed Feb 14 21:18:28 UTC 2018
This can be used to specify that a C++ conversion operator is not
meant to be used for implicit conversions, which can lead to
unintended loss of information in some cases. Implemented as a macro
in order to keep old GCC versions happy.
---
src/util/macros.h | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/src/util/macros.h b/src/util/macros.h
index e3c785af508..6d3df904082 100644
--- a/src/util/macros.h
+++ b/src/util/macros.h
@@ -285,4 +285,14 @@ do { \
#define MIN3( A, B, C ) ((A) < (B) ? MIN2(A, C) : MIN2(B, C))
#define MAX3( A, B, C ) ((A) > (B) ? MAX2(A, C) : MAX2(B, C))
+/**
+ * Macro for declaring an explicit conversion operator. Defaults to an
+ * implicit conversion if C++11 is not supported.
+ */
+#if __cplusplus >= 201103L
+#define EXPLICIT_CONVERSION explicit
+#elif defined(__cplusplus)
+#define EXPLICIT_CONVERSION
+#endif
+
#endif /* UTIL_MACROS_H */
--
2.16.1
More information about the mesa-dev
mailing list