[libsigcplusplus/variadic_mem_fun3: 94/148] Remove nil and the associated pragma push/pop fixes for Objective C++.
- From: Murray Cumming <murrayc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libsigcplusplus/variadic_mem_fun3: 94/148] Remove nil and the associated pragma push/pop fixes for Objective C++.
- Date: Mon, 7 Mar 2016 10:05:42 +0000 (UTC)
commit 4aef39b49b4a974597eeb97d1f84a451e10c8b12
Author: Murray Cumming <murrayc murrayc com>
Date: Thu Mar 3 10:37:21 2016 +0100
Remove nil and the associated pragma push/pop fixes for Objective C++.
build/cxx.m4 | 51 ------------------------------------
configure.ac | 2 +-
sigc++/adaptors/bind.h | 12 --------
sigc++/adaptors/macros/retype.h.m4 | 11 --------
sigc++/functors/functor_trait.h | 28 -------------------
sigc++/functors/slot.h | 11 --------
sigc++/signal.h | 12 --------
7 files changed, 1 insertions(+), 126 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 2259fcb..f8b24bb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -50,7 +50,7 @@ MM_ARG_ENABLE_DOCUMENTATION
MM_ARG_WITH_TAGFILE_DOC([libstdc++.tag], [mm-common-libstdc++])
AC_LANG([C++])
-SIGC_CXX_PRAGMA_PUSH_POP_MACRO
+SIGC_CXX_HAS_NAMESPACE_STD
SIGC_CXX_HAS_SUN_REVERSE_ITERATOR
AS_IF([test "x$config_error" = xyes],
diff --git a/sigc++/adaptors/bind.h b/sigc++/adaptors/bind.h
index d82f993..390d42b 100644
--- a/sigc++/adaptors/bind.h
+++ b/sigc++/adaptors/bind.h
@@ -8,14 +8,6 @@
#include <sigc++/tuple-utils/tuple_end.h>
#include <sigc++/tuple-utils/tuple_transform_each.h>
-
-//TODO: See comment in functor_trait.h.
-#if defined(nil) && defined(SIGC_PRAGMA_PUSH_POP_MACRO)
- #define SIGC_NIL_HAS_BEEN_PUSHED 1
- #pragma push_macro("nil")
- #undef nil
-#endif
-
namespace sigc {
@@ -335,8 +327,4 @@ bind(const T_functor& _A_func, T_type... _A_b)
} /* namespace sigc */
-#ifdef SIGC_NIL_HAS_BEEN_PUSHED
- #undef SIGC_NIL_HAS_BEEN_PUSHED
- #pragma pop_macro("nil")
-#endif
#endif /* _SIGC_ADAPTORS_BIND_H_ */
diff --git a/sigc++/adaptors/macros/retype.h.m4 b/sigc++/adaptors/macros/retype.h.m4
index dd69839..2478a3b 100644
--- a/sigc++/adaptors/macros/retype.h.m4
+++ b/sigc++/adaptors/macros/retype.h.m4
@@ -43,13 +43,6 @@ _FIREWALL([ADAPTORS_RETYPE])
#include <sigc++/functors/mem_fun.h>
#include <sigc++/functors/slot.h>
-//TODO: See comment in functor_trait.h.
-#if defined(nil) && defined(SIGC_PRAGMA_PUSH_POP_MACRO)
- #define SIGC_NIL_HAS_BEEN_PUSHED 1
- #pragma push_macro("nil")
- #undef nil
-#endif
-
namespace sigc {
/** @defgroup retype retype(), retype_return()
@@ -183,7 +176,3 @@ RETYPE_MEM_FUNCTOR([bound_const_volatile_])
} /* namespace sigc */
-#ifdef SIGC_NIL_HAS_BEEN_PUSHED
- #undef SIGC_NIL_HAS_BEEN_PUSHED
- #pragma pop_macro("nil")
-#endif
diff --git a/sigc++/functors/functor_trait.h b/sigc++/functors/functor_trait.h
index 176a330..904d507 100644
--- a/sigc++/functors/functor_trait.h
+++ b/sigc++/functors/functor_trait.h
@@ -5,34 +5,6 @@
namespace sigc {
-//TODO: When we can break ABI, replace nil by something else, such as sigc_nil.
-// nil is a keyword in Objective C++. When gcc is used for compiling Objective C++
-// programs, nil is defined as a preprocessor macro.
-// https://bugzilla.gnome.org/show_bug.cgi?id=695235
-#if defined(nil) && defined(SIGC_PRAGMA_PUSH_POP_MACRO)
- #define SIGC_NIL_HAS_BEEN_PUSHED 1
- #pragma push_macro("nil")
- #undef nil
-#endif
-
-/** nil struct type.
- * The nil struct type is used as default template argument in the
- * unnumbered sigc::signal and sigc::slot templates.
- *
- * @ingroup signal
- * @ingroup slot
- */
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-struct nil;
-#else
-struct nil {};
-#endif
-
-#ifdef SIGC_NIL_HAS_BEEN_PUSHED
- #undef SIGC_NIL_HAS_BEEN_PUSHED
- #pragma pop_macro("nil")
-#endif
-
/** @defgroup sigcfunctors Functors
* Functors are copyable types that define operator()().
*
diff --git a/sigc++/functors/slot.h b/sigc++/functors/slot.h
index 66ad68e..7a3713f 100644
--- a/sigc++/functors/slot.h
+++ b/sigc++/functors/slot.h
@@ -6,13 +6,6 @@
#include <sigc++/adaptors/adaptor_trait.h>
#include <sigc++/functors/slot_base.h>
-//TODO: See comment in functor_trait.h.
-#if defined(nil) && defined(SIGC_PRAGMA_PUSH_POP_MACRO)
- #define SIGC_NIL_HAS_BEEN_PUSHED 1
- #pragma push_macro("nil")
- #undef nil
-#endif
-
namespace sigc {
namespace internal {
@@ -265,9 +258,5 @@ struct visitor<slot<T_return, T_arg...>>
} /* namespace sigc */
-#ifdef SIGC_NIL_HAS_BEEN_PUSHED
- #undef SIGC_NIL_HAS_BEEN_PUSHED
- #pragma pop_macro("nil")
-#endif
#endif /* _SIGC_FUNCTORS_SLOT_H_ */
diff --git a/sigc++/signal.h b/sigc++/signal.h
index 59b3580..9a36575 100644
--- a/sigc++/signal.h
+++ b/sigc++/signal.h
@@ -29,13 +29,6 @@
#include <tuple>
#include <utility>
-//TODO: See comment in functor_trait.h.
-#if defined(nil) && defined(SIGC_PRAGMA_PUSH_POP_MACRO)
- #define SIGC_NIL_HAS_BEEN_PUSHED 1
- #pragma push_macro("nil")
- #undef nil
-#endif
-
namespace sigc {
/** STL-style iterator for slot_list.
@@ -1108,9 +1101,4 @@ public:
} /* namespace sigc */
-#ifdef SIGC_NIL_HAS_BEEN_PUSHED
- #undef SIGC_NIL_HAS_BEEN_PUSHED
- #pragma pop_macro("nil")
-#endif
-
#endif /* _SIGC_SIGNAL_H_ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]