On 09/11/21 5:25 pm, Jonathan Wakely wrote:
On Mon, 8 Nov 2021 at 21:36, François Dumont <frs.dum...@gmail.com
<mailto:frs.dum...@gmail.com>> wrote:
Yet another version this time with only 1 guard implementation.
The predicate to invalidate the safe iterators has been externalized.
Ok to commit ?
I like this version a lot - thanks for persisting with it.
OK to commit, thanks.
As an aside ...
--- a/libstdc++-v3/testsuite/util/testsuite_abi.h
+++ b/libstdc++-v3/testsuite/util/testsuite_abi.h
@@ -24,7 +24,11 @@
#include <locale>
#if __cplusplus >= 201103L
# include <unordered_map>
+# ifdef _GLIBCXX_DEBUG
+namespace unord = std::_GLIBCXX_STD_C;
+# else
namespace unord = std;
+# endif
#else
# include <tr1/unordered_map>
namespace unord = std::tr1;
Several times I've been annoyed by the fact that we don't have a way
to refer to std::_GLIBCXX_STD_C::vector etc. that is always valid, in
normal mode and debug mode.
Maybe we should add:
namespace std { namespace _GLIBCXX_STD_C = ::std; }
That way we can refer to std::_GLIBCXX_STD_C::foo in normal mode, and
it will mean the same thing as in debug mode. So we don't need to use
#if conditions like this.
Good idea, I'll prepare it.
François