[beast/devel: 2/7] SFI: avoid excessive flags enum casting for GParamFlags GSignalMatchType GSignalFlags
- From: Tim Janik <timj src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [beast/devel: 2/7] SFI: avoid excessive flags enum casting for GParamFlags GSignalMatchType GSignalFlags
- Date: Tue, 18 Dec 2012 19:33:54 +0000 (UTC)
commit 72a8de736ab44740a0f8b7c619398b41abd6ca67
Author: Tim Janik <timj gnu org>
Date: Tue Dec 18 20:18:05 2012 +0100
SFI: avoid excessive flags enum casting for GParamFlags GSignalMatchType GSignalFlags
sfi/glib-extra.h | 22 +++++++++++++++++++++-
1 files changed, 21 insertions(+), 1 deletions(-)
---
diff --git a/sfi/glib-extra.h b/sfi/glib-extra.h
index b0bdc11..4ff83c4 100644
--- a/sfi/glib-extra.h
+++ b/sfi/glib-extra.h
@@ -71,7 +71,6 @@ void g_object_disconnect_any (gpointer object,
gpointer function,
gpointer data); /* workaorund for g_object_disconnect() */
-
/* --- string functions --- */
const gchar* g_printf_find_localised_directive (const gchar *format);
gchar** g_straddv (gchar **str_array,
@@ -323,4 +322,25 @@ GScanner* g_scanner_new64 (const GScannerConfig *config_templ);
G_END_DECLS
+// == Flags Enumeration Operators in C++ ==
+#ifdef __cplusplus
+inline GParamFlags operator& (GParamFlags s1, GParamFlags s2) { return GParamFlags (s1 & (long long unsigned) s2); }
+inline GParamFlags& operator&= (GParamFlags &s1, GParamFlags s2) { s1 = s1 & s2; return s1; }
+inline GParamFlags operator| (GParamFlags s1, GParamFlags s2) { return GParamFlags (s1 | (long long unsigned) s2); }
+inline GParamFlags& operator|= (GParamFlags &s1, GParamFlags s2) { s1 = s1 | s2; return s1; }
+inline GParamFlags operator~ (GParamFlags s1) { return GParamFlags (~(long long unsigned) s1); }
+
+inline GSignalMatchType operator& (GSignalMatchType s1, GSignalMatchType s2) { return GSignalMatchType (s1 & (long long unsigned) s2); }
+inline GSignalMatchType& operator&= (GSignalMatchType &s1, GSignalMatchType s2) { s1 = s1 & s2; return s1; }
+inline GSignalMatchType operator| (GSignalMatchType s1, GSignalMatchType s2) { return GSignalMatchType (s1 | (long long unsigned) s2); }
+inline GSignalMatchType& operator|= (GSignalMatchType &s1, GSignalMatchType s2) { s1 = s1 | s2; return s1; }
+inline GSignalMatchType operator~ (GSignalMatchType s1) { return GSignalMatchType (~(long long unsigned) s1); }
+
+inline GSignalFlags operator& (GSignalFlags s1, GSignalFlags s2) { return GSignalFlags (s1 & (long long unsigned) s2); }
+inline GSignalFlags& operator&= (GSignalFlags &s1, GSignalFlags s2) { s1 = s1 & s2; return s1; }
+inline GSignalFlags operator| (GSignalFlags s1, GSignalFlags s2) { return GSignalFlags (s1 | (long long unsigned) s2); }
+inline GSignalFlags& operator|= (GSignalFlags &s1, GSignalFlags s2) { s1 = s1 | s2; return s1; }
+inline GSignalFlags operator~ (GSignalFlags s1) { return GSignalFlags (~(long long unsigned) s1); }
+#endif // __cplusplus
+
#endif /* __SFI_GLIB_EXTRA_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]