index : packages | |
Archlinux32 package modifications | gitolite user |
summaryrefslogtreecommitdiff |
-rw-r--r-- | extra/boost181-libs/boost181-libs-ublas-c++20-iterator.patch | 59 |
diff --git a/extra/boost181-libs/boost181-libs-ublas-c++20-iterator.patch b/extra/boost181-libs/boost181-libs-ublas-c++20-iterator.patch new file mode 100644 index 00000000..21321cc3 --- /dev/null +++ b/extra/boost181-libs/boost181-libs-ublas-c++20-iterator.patch @@ -0,0 +1,59 @@ +From a31e5cffa85f58b64a39fa7c4a1bd3bd9228b069 Mon Sep 17 00:00:00 2001 +From: Conrad Poelman <cpgithub@stellarscience.com> +Date: Tue, 4 Aug 2020 17:20:40 -0400 +Subject: [PATCH] Remove deprecated inheritance from std::iterator (#97) + +std::iterator was deprecated in C++17 and removed in C++20. I replaced the inheritance with the 5 equivalent typedefs, even though they're not all used by ublas, for compatibility in case clients depend on them. +--- + .../boost/numeric/ublas/detail/iterator.hpp | 24 ++++++++++++++----- + 1 file changed, 18 insertions(+), 6 deletions(-) + +diff --git a/include/boost/numeric/ublas/detail/iterator.hpp b/include/boost/numeric/ublas/detail/iterator.hpp +index 1723a301c..7aebf2f9f 100644 +--- a/include/boost/numeric/ublas/detail/iterator.hpp ++++ b/include/boost/numeric/ublas/detail/iterator.hpp +@@ -107,8 +107,12 @@ namespace boost { namespace numeric { namespace ublas { + * via the post increment operator. + */ + template<class IC, class I, class T> +- struct forward_iterator_base: +- public std::iterator<IC, T> { ++ struct forward_iterator_base { ++ typedef IC iterator_category; ++ typedef T value_type; ++ typedef std::ptrdiff_t difference_type; ++ typedef T* pointer; ++ typedef T& reference; + typedef I derived_iterator_type; + typedef T derived_value_type; + +@@ -145,8 +149,12 @@ namespace boost { namespace numeric { namespace ublas { + * via the post increment and post decrement operator. + */ + template<class IC, class I, class T> +- struct bidirectional_iterator_base: +- public std::iterator<IC, T> { ++ struct bidirectional_iterator_base { ++ typedef IC iterator_category; ++ typedef T value_type; ++ typedef std::ptrdiff_t difference_type; ++ typedef T* pointer; ++ typedef T& reference; + typedef I derived_iterator_type; + typedef T derived_value_type; + +@@ -200,8 +208,12 @@ namespace boost { namespace numeric { namespace ublas { + */ + template<class IC, class I, class T, class D = std::ptrdiff_t> + // ISSUE the default for D seems rather dangerous as it can easily be (silently) incorrect +- struct random_access_iterator_base: +- public std::iterator<IC, T> { ++ struct random_access_iterator_base { ++ typedef IC iterator_category; ++ typedef T value_type; ++ typedef D difference_type; ++ typedef T* pointer; ++ typedef T& reference; + typedef I derived_iterator_type; + typedef T derived_value_type; + typedef D derived_difference_type; |