aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/stxxl/0001-fix-visual-studio.patch
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/stxxl/0001-fix-visual-studio.patch
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/stxxl/0001-fix-visual-studio.patch')
-rw-r--r--vcpkg/ports/stxxl/0001-fix-visual-studio.patch289
1 files changed, 289 insertions, 0 deletions
diff --git a/vcpkg/ports/stxxl/0001-fix-visual-studio.patch b/vcpkg/ports/stxxl/0001-fix-visual-studio.patch
new file mode 100644
index 0000000..287b0ae
--- /dev/null
+++ b/vcpkg/ports/stxxl/0001-fix-visual-studio.patch
@@ -0,0 +1,289 @@
+diff --git a/include/stxxl/bits/algo/ksort.h b/include/stxxl/bits/algo/ksort.h
+index 33ec8cf..8101741 100644
+--- a/include/stxxl/bits/algo/ksort.h
++++ b/include/stxxl/bits/algo/ksort.h
+@@ -299,11 +299,7 @@ create_runs(
+ template <typename BlockType,
+ typename prefetcher_type,
+ typename KeyExtractor>
+-struct run_cursor2_cmp : public std::binary_function<
+- run_cursor2<BlockType, prefetcher_type>,
+- run_cursor2<BlockType, prefetcher_type>,
+- bool
+- >
++struct run_cursor2_cmp
+ {
+ typedef run_cursor2<BlockType, prefetcher_type> cursor_type;
+ KeyExtractor keyobj;
+@@ -327,7 +323,7 @@ private:
+ };
+
+ template <typename RecordType, typename KeyExtractor>
+-class key_comparison : public std::binary_function<RecordType, RecordType, bool>
++class key_comparison
+ {
+ KeyExtractor ke;
+
+diff --git a/include/stxxl/bits/algo/sort_helper.h b/include/stxxl/bits/algo/sort_helper.h
+index 524e40d..69234c4 100644
+--- a/include/stxxl/bits/algo/sort_helper.h
++++ b/include/stxxl/bits/algo/sort_helper.h
+@@ -51,7 +51,6 @@ struct trigger_entry
+
+ template <typename TriggerEntryType, typename ValueCmp>
+ struct trigger_entry_cmp
+- : public std::binary_function<TriggerEntryType, TriggerEntryType, bool>
+ {
+ typedef TriggerEntryType trigger_entry_type;
+ ValueCmp cmp;
+@@ -67,11 +66,6 @@ template <typename BlockType,
+ typename PrefetcherType,
+ typename ValueCmp>
+ struct run_cursor2_cmp
+- : public std::binary_function<
+- run_cursor2<BlockType, PrefetcherType>,
+- run_cursor2<BlockType, PrefetcherType>,
+- bool
+- >
+ {
+ typedef BlockType block_type;
+ typedef PrefetcherType prefetcher_type;
+diff --git a/include/stxxl/bits/compat/unique_ptr.h b/include/stxxl/bits/compat/unique_ptr.h
+index 9df12ff..7110246 100644
+--- a/include/stxxl/bits/compat/unique_ptr.h
++++ b/include/stxxl/bits/compat/unique_ptr.h
+@@ -22,12 +22,7 @@ STXXL_BEGIN_NAMESPACE
+
+ template <class Type>
+ struct compat_unique_ptr {
+-#if __cplusplus >= 201103L && ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100) >= 40400)
+ typedef std::unique_ptr<Type> result;
+-#else
+- // auto_ptr is inherently broken and is deprecated by unique_ptr in c++0x
+- typedef std::auto_ptr<Type> result;
+-#endif
+ };
+
+ STXXL_END_NAMESPACE
+diff --git a/include/stxxl/bits/containers/btree/leaf.h b/include/stxxl/bits/containers/btree/leaf.h
+index d7c619f..969adfd 100644
+--- a/include/stxxl/bits/containers/btree/leaf.h
++++ b/include/stxxl/bits/containers/btree/leaf.h
+@@ -66,7 +66,7 @@ public:
+ typedef node_cache<normal_leaf, btree_type> leaf_cache_type;
+
+ public:
+- struct value_compare : public std::binary_function<value_type, value_type, bool>
++ struct value_compare
+ {
+ key_compare comp;
+
+diff --git a/include/stxxl/bits/containers/btree/node.h b/include/stxxl/bits/containers/btree/node.h
+index 13dec7b..c26cfff 100644
+--- a/include/stxxl/bits/containers/btree/node.h
++++ b/include/stxxl/bits/containers/btree/node.h
+@@ -71,7 +71,7 @@ public:
+ typedef node_cache<normal_node, btree_type> node_cache_type;
+
+ private:
+- struct value_compare : public std::binary_function<value_type, value_type, bool>
++ struct value_compare
+ {
+ key_compare comp;
+
+diff --git a/include/stxxl/bits/containers/hash_map/hash_map.h b/include/stxxl/bits/containers/hash_map/hash_map.h
+index 0759bd2..edcc2ac 100644
+--- a/include/stxxl/bits/containers/hash_map/hash_map.h
++++ b/include/stxxl/bits/containers/hash_map/hash_map.h
+@@ -1258,10 +1258,7 @@ protected:
+ * lexicographically by <hash-value, key> Note: the hash-value has already
+ * been computed.
+ */
+- struct Cmp : public std::binary_function<
+- std::pair<internal_size_type, value_type>,
+- std::pair<internal_size_type, value_type>, bool
+- >
++ struct Cmp
+ {
+ self_type& map_;
+ Cmp(self_type& map) : map_(map) { }
+@@ -1520,7 +1517,7 @@ protected:
+
+ public:
+ //! Construct an equality predicate from the comparison operator
+- struct equal_to : public std::binary_function<key_type, key_type, bool>
++ struct equal_to
+ {
+ //! reference to hash_map
+ const self_type& m_map;
+diff --git a/include/stxxl/bits/io/wbtl_file.h b/include/stxxl/bits/io/wbtl_file.h
+index 933a216..d9f0674 100644
+--- a/include/stxxl/bits/io/wbtl_file.h
++++ b/include/stxxl/bits/io/wbtl_file.h
+@@ -65,7 +65,7 @@ class wbtl_file : public disk_queued_file
+ size_type curpos;
+ request_ptr backend_request;
+
+- struct FirstFit : public std::binary_function<place, offset_type, bool>
++ struct FirstFit
+ {
+ bool operator () (
+ const place& entry,
+diff --git a/include/stxxl/bits/mng/block_alloc.h b/include/stxxl/bits/mng/block_alloc.h
+index 19ade8b..dac408f 100644
+--- a/include/stxxl/bits/mng/block_alloc.h
++++ b/include/stxxl/bits/mng/block_alloc.h
+@@ -138,7 +138,7 @@ private:
+ perm[i] = i;
+
+ stxxl::random_number<random_uniform_fast> rnd;
+- std::random_shuffle(perm.begin(), perm.end(), rnd _STXXL_FORCE_SEQUENTIAL);
++ std::shuffle(perm.begin(), perm.end(), std::mt19937(std::random_device()()));
+ }
+
+ public:
+diff --git a/include/stxxl/bits/mng/block_alloc_interleaved.h b/include/stxxl/bits/mng/block_alloc_interleaved.h
+index a82ee34..83925a3 100644
+--- a/include/stxxl/bits/mng/block_alloc_interleaved.h
++++ b/include/stxxl/bits/mng/block_alloc_interleaved.h
+@@ -93,7 +93,7 @@ struct interleaved_RC : public interleaved_striping
+ perms[i][j] = j;
+
+ random_number<random_uniform_fast> rnd;
+- std::random_shuffle(perms[i].begin(), perms[i].end(), rnd _STXXL_FORCE_SEQUENTIAL);
++ std::shuffle(perms[i].begin(), perms[i].end(), std::mt19937(std::random_device()()));
+ }
+ }
+
+diff --git a/include/stxxl/bits/mng/disk_allocator.h b/include/stxxl/bits/mng/disk_allocator.h
+index 59ad085..a4e534e 100644
+--- a/include/stxxl/bits/mng/disk_allocator.h
++++ b/include/stxxl/bits/mng/disk_allocator.h
+@@ -44,7 +44,7 @@ class disk_allocator : private noncopyable
+ {
+ typedef std::pair<stxxl::int64, stxxl::int64> place;
+
+- struct first_fit : public std::binary_function<place, stxxl::int64, bool>
++ struct first_fit
+ {
+ bool operator () (
+ const place& entry,
+@@ -189,7 +189,7 @@ void disk_allocator::new_blocks(BID<BlockSize>* begin, BID<BlockSize>* end)
+
+ sortseq::iterator space;
+ space = std::find_if(free_space.begin(), free_space.end(),
+- bind2nd(first_fit(), requested_size) _STXXL_FORCE_SEQUENTIAL);
++ std::bind(first_fit(), std::placeholders::_1, requested_size) _STXXL_FORCE_SEQUENTIAL);
+
+ if (space == free_space.end() && requested_size == BlockSize)
+ {
+@@ -207,7 +207,7 @@ void disk_allocator::new_blocks(BID<BlockSize>* begin, BID<BlockSize>* end)
+ grow_file(BlockSize);
+
+ space = std::find_if(free_space.begin(), free_space.end(),
+- bind2nd(first_fit(), requested_size) _STXXL_FORCE_SEQUENTIAL);
++ std::bind(first_fit(), std::placeholders::_1, requested_size) _STXXL_FORCE_SEQUENTIAL);
+ }
+
+ if (space != free_space.end())
+diff --git a/include/stxxl/bits/msvc_compatibility.h b/include/stxxl/bits/msvc_compatibility.h
+index c2c937d..0cb22e5 100644
+--- a/include/stxxl/bits/msvc_compatibility.h
++++ b/include/stxxl/bits/msvc_compatibility.h
+@@ -19,10 +19,12 @@
+
+ #include <cmath>
+
++#if _MSC_VER < 1900
+ inline double log2(double x)
+ {
+ return (log(x) / log(2.));
+ }
++#endif // ^^^ _MSC_VER < 1900
+
+ // http://msdn.microsoft.com/en-us/library/2ts7cx93.aspx
+ #define snprintf _snprintf
+diff --git a/include/stxxl/bits/parallel.h b/include/stxxl/bits/parallel.h
+index d973861..c858d87 100644
+--- a/include/stxxl/bits/parallel.h
++++ b/include/stxxl/bits/parallel.h
+@@ -121,7 +121,6 @@ using __gnu_parallel::random_shuffle;
+ #elif STXXL_PARALLEL
+
+ using std::sort;
+-using std::random_shuffle;
+
+ #else
+
+diff --git a/include/stxxl/bits/parallel/base.h b/include/stxxl/bits/parallel/base.h
+index 141d515..1c970f9 100644
+--- a/include/stxxl/bits/parallel/base.h
++++ b/include/stxxl/bits/parallel/base.h
+@@ -33,7 +33,6 @@ namespace parallel {
+ */
+ template <class Predicate, typename first_argument_type, typename second_argument_type>
+ class binary_negate
+- : public std::binary_function<first_argument_type, second_argument_type, bool>
+ {
+ protected:
+ Predicate pred;
+@@ -80,7 +79,7 @@ static inline void decode2(lcas_t x, int& a, int& b)
+ * Constructs predicate for equality from strict weak ordering predicate
+ */
+ template <class Comparator, typename T1, typename T2>
+-class equal_from_less : public std::binary_function<T1, T2, bool>
++class equal_from_less
+ {
+ private:
+ Comparator& comp;
+@@ -126,7 +125,7 @@ median_of_three_iterators(RandomAccessIterator a, RandomAccessIterator b,
+
+ /** Similar to std::equal_to, but allows two different types. */
+ template <typename T1, typename T2>
+-struct equal_to : std::binary_function<T1, T2, bool>
++struct equal_to
+ {
+ bool operator () (const T1& t1, const T2& t2) const
+ {
+@@ -136,7 +135,7 @@ struct equal_to : std::binary_function<T1, T2, bool>
+
+ /** Similar to std::less, but allows two different types. */
+ template <typename T1, typename T2>
+-struct less : std::binary_function<T1, T2, bool>
++struct less
+ {
+ bool operator () (const T1& t1, const T2& t2) const
+ {
+diff --git a/include/stxxl/bits/parallel/multiseq_selection.h b/include/stxxl/bits/parallel/multiseq_selection.h
+index 57e7599..f41d9aa 100644
+--- a/include/stxxl/bits/parallel/multiseq_selection.h
++++ b/include/stxxl/bits/parallel/multiseq_selection.h
+@@ -35,7 +35,6 @@ namespace parallel {
+ //! Compare a pair of types lexcigraphically, ascending.
+ template <typename T1, typename T2, typename Comparator>
+ class lexicographic
+- : public std::binary_function<std::pair<T1, T2>, std::pair<T1, T2>, bool>
+ {
+ protected:
+ Comparator& m_comp;
+@@ -60,7 +59,6 @@ public:
+ //! Compare a pair of types lexcigraphically, descending.
+ template <typename T1, typename T2, typename Comparator>
+ class lexicographic_rev
+- : public std::binary_function<std::pair<T1, T2>, std::pair<T1, T2>, bool>
+ {
+ protected:
+ Comparator& m_comp;
+diff --git a/lib/io/wbtl_file.cpp b/lib/io/wbtl_file.cpp
+index 310d76a..5f1a766 100644
+--- a/lib/io/wbtl_file.cpp
++++ b/lib/io/wbtl_file.cpp
+@@ -304,7 +304,7 @@ wbtl_file::offset_type wbtl_file::get_next_write_block()
+ // mapping_lock has to be aquired by caller
+ sortseq::iterator space =
+ std::find_if(free_space.begin(), free_space.end(),
+- bind2nd(FirstFit(), write_block_size) _STXXL_FORCE_SEQUENTIAL);
++ std::bind(FirstFit(), std::placeholders::_1, write_block_size) _STXXL_FORCE_SEQUENTIAL);
+
+ if (space != free_space.end())
+ {