From 09724ac86018486324a9e19811dee7a3111c659b Mon Sep 17 00:00:00 2001 From: Brad King <brad.king@kitware.com> Date: Wed, 6 Dec 2017 14:57:28 -0500 Subject: [PATCH] hashtable: Avoid use of std::unary_function It is removed by C++17. It only defines some typedef members for derived functionals. We don't use those, so just drop it. --- hash_map.hxx.in | 2 +- hash_set.hxx.in | 2 +- hashtable.hxx.in | 13 ++++++------- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/hash_map.hxx.in b/hash_map.hxx.in index 3f9174f3..8c9b81e1 100644 --- a/hash_map.hxx.in +++ b/hash_map.hxx.in @@ -49,7 +49,7 @@ namespace @KWSYS_NAMESPACE@ { // select1st is an extension: it is not part of the standard. template <class T1, class T2> -struct hash_select1st : public std::unary_function<std::pair<T1, T2>, T1> +struct hash_select1st { const T1& operator()(const std::pair<T1, T2>& __x) const { diff --git a/hash_set.hxx.in b/hash_set.hxx.in index e3a0c6c4..5edd367a 100644 --- a/hash_set.hxx.in +++ b/hash_set.hxx.in @@ -49,7 +49,7 @@ namespace @KWSYS_NAMESPACE@ { // identity is an extension: it is not part of the standard. template <class _Tp> -struct _Identity : public std::unary_function<_Tp, _Tp> +struct _Identity { const _Tp& operator()(const _Tp& __x) const { return __x; } }; diff --git a/hashtable.hxx.in b/hashtable.hxx.in index dd92cb9d..e962f17a 100644 --- a/hashtable.hxx.in +++ b/hashtable.hxx.in @@ -35,13 +35,12 @@ #include <@KWSYS_NAMESPACE@/Configure.hxx> -#include <algorithm> // lower_bound -#include <functional> // unary_function -#include <iterator> // iterator_traits -#include <memory> // allocator -#include <stddef.h> // size_t -#include <utility> // pair -#include <vector> // vector +#include <algorithm> // lower_bound +#include <iterator> // iterator_traits +#include <memory> // allocator +#include <stddef.h> // size_t +#include <utility> // pair +#include <vector> // vector #if defined(_MSC_VER) #pragma warning(push) -- GitLab