summaryrefslogtreecommitdiff
path: root/autoconf/m4/cxx_bidi_iterator.m4
diff options
context:
space:
mode:
Diffstat (limited to 'autoconf/m4/cxx_bidi_iterator.m4')
-rw-r--r--autoconf/m4/cxx_bidi_iterator.m422
1 files changed, 22 insertions, 0 deletions
diff --git a/autoconf/m4/cxx_bidi_iterator.m4 b/autoconf/m4/cxx_bidi_iterator.m4
new file mode 100644
index 000000000000..d7de85630b5f
--- /dev/null
+++ b/autoconf/m4/cxx_bidi_iterator.m4
@@ -0,0 +1,22 @@
+#
+# Check for bidirectional iterator extension. This is modified from
+# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_hash_set.html
+#
+AC_DEFUN([AC_CXX_HAVE_BI_ITERATOR],
+[AC_CACHE_CHECK(whether the compiler has the bidirectional iterator,
+ac_cv_cxx_have_bi_iterator,
+[AC_REQUIRE([AC_CXX_NAMESPACES])
+ AC_LANG_PUSH([C++])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <iterator>
+#ifdef HAVE_NAMESPACES
+using namespace std;
+#endif]], [[bidirectional_iterator<int,int> t; return 0;]])],[ac_cv_cxx_have_bi_iterator=yes],[ac_cv_cxx_have_bi_iterator=no])
+ AC_LANG_POP([C++])
+])
+if test "$ac_cv_cxx_have_bi_iterator" = yes
+then
+ AC_DEFINE(HAVE_BI_ITERATOR,1,[Have bi-directional iterator])
+else
+ AC_DEFINE(HAVE_BI_ITERATOR,0,[Does not have bi-directional iterator])
+fi
+])