dash/test/set_transient/B6.cpp

27 lines
819 B
C++
Raw Normal View History

Squashed 'src/immer/' changes from 9cb6a5a845..5875f7739a 5875f7739a Merge pull request #269 from pinotree/cmake-current-dir e0c4b1793d cmake: use ${CMAKE_CURRENT_SOURCE_DIR} where possible d0b79d5cbd Merge pull request #268 from pinotree/drop-findguile 5612ec803d cmake: drop FindGuile.cmake b60403ca83 Merge pull request #267 from pinotree/system-catch2 eec85078f2 Drop unused copy of Catch2 ac49b71e42 Switch to system Catch2 615ed31635 nix: disable tests & examples b70f1c27f1 Merge pull request #266 from pinotree/drop-doctest b133b774d4 Drop the unused doctest copy 168768c5de tests: port dvektor to catch2 8872e233c3 Merge pull request #257 from vector-of-bool/cxx20-ranges-fixes 0b3aaf699b Merge pull request #263 from colugomusic/fix-msvc-explicit-destructor-call 10cd1f3312 Merge pull request #262 from colugomusic/fix-msvc-c2975 daff65041c Trying to satisfy LLVM. 88076f7329 Remove unneeded include 4585522553 Merge branch 'fix-msvc-explicit-destructor-call' of https://github.com/colugomusic/immer into fix-msvc-explicit-destructor-call 5516624d67 Manual destroy_at for C++14 205180bb13 Add missing #include required by gcc 77c2f422fe Fix whitespace 6672e57e26 Remove unused capture default 30fb619ce7 Use destroy_at to call explicit destructor in make_inner_n 813e891e25 Fix MSVC compile error C2975 21cc60ef11 Merge pull request #261 from colugomusic/fix-msvc-c2059 5125b83afb Fix MSVC compile error C2059 9549696683 Merge pull request #260 from arximboldi/fmt-fixes 4871c7455a Merge pull request #256 from dhly-etc/robust-loading 8a165e7bd2 Upgrade Nix in Actions 1b66f4ad2a Fix includes 4513c2f80d Upgrade install-nix-action 5f96a39d0d Merge pull request #259 from tocic/fix/dark_theme_logo 04c7d90fc4 Use alternative logo in dark mode ae8abe0ce0 Return a direct reference from iterator operator[] 5722567343 Merge pull request #258 from bobkocisko/master e382feab06 Fixing annoying unused local variable warning ffb051721b Fixes and tests for C++20 Range compatibility a983d6fe1a Make pretty-printer loading more robust d98a68cd6c Merge pull request #255 from dhly-etc/gdb-pretty-printers 7ff66e0934 Add .gdbinit file to autoload pretty printers 9b8e1b340e Add array printer 0220ba4389 Add table printer 17915a5881 Add GDB pretty-printing support adbb4cd311 Merge pull request #253 from tocic/fix/typos c69ad466a1 Fix typos 9dad616455 Merge pull request #250 from LilyWangLL/AddConfigVersion 3630ec4080 Add quotes 54ba35145b Add export CMake Config version file 3c527e434b Merge pull request #246 from maierlars/feature/nothrow-move-constructible-flex-vector 119f9d858a Merge pull request #247 from urbanwe/urbanwe-patch-1 ec81042a26 Fix wrong order in operator<(T2, box<T>) b7756f5e85 Use lambda for initialization. 9c67e60b44 Fixing assertions. 38edbd8be4 Attempt to make flex_vector nothrow move constructible/assignable. a5991efbe4 Merge pull request #243 from arximboldi/memory-usage ffef2712f3 Lower constants for memory usage so CI does not timeout 20eb876b80 Add benchmarks for checking CHAMP memory usage 58036b4eae Merge pull request #239 from arximboldi/release-v0.8 a814bcd592 Do not install specific old version of Nix 6b05223054 Upgrade install-nix-action ad5acab104 Upgrade cachix action de91bdb28e Prepare release 0.8.0 459854dc80 Merge pull request #238 from arximboldi/add-identity-api 2c8ceb6160 Add identity API ca78d685ad Merge pull request #236 from DavidKorczynski/cifuzz-int e870de6c0b Add CIFuzz GitHub action 4100eff397 Merge pull request #235 from arximboldi/more-fuzz-conflict 6e8a4f8f83 Add fuzzers that produce more conflicts 53b1e37e38 Merge pull request #233 from asa/make_gcc_pragma_ignore_clang 75cc8984e2 make clang ignore gcc pragma warning for champ 93ab7151cd Merge pull request #231 from arximboldi/fuzz-move d5b6bf6b45 Strengthen the fuzzers even further 35c94037d4 Fix issues in map/set erase() found by fuzzer b43a1ca2ac Fix fuzzer was not doing what we thought it did 048891443c Add set fuzzer that can find if the tree is corrupted by moves 8f105e275c Add map fuzzer that can find if the tree is corrupted by moves 54f0d543dc Merge pull request #230 from Kraks/patch-1 8acee494ba Fix typo in comment 006461c8ec Merge pull request #227 from arximboldi/fix-debug-stats 0e07630e22 Fix debug stats d98e82d66a Merge pull request #226 from arximboldi/fix-dec-unsafe ad759c4783 Remove dec_unsafe() from the policies 4a8fd59e35 Remove dec_unsafe() usage in HAMT data-structures a7b0e23771 Remove usage of dec_unsafe() in RBTS data-structures e02cbd795e Merge pull request #225 from arximboldi/fix-champ-move db3ea447ad Fix sometimes HAMTs would move out values that it should not! 34deab8781 Fix iteration over data-structures would sometimes allow mutation! e5d79ed80e Merge pull request #222 from arximboldi/more-meta-improvements 6b57f13664 Add update_if_exists method to map and table and related transients f3cebc63a1 Fix table and table_transient update() bd1f0c00c0 Improve debug stats API ad73ea14bf Merge pull request #221 from arximboldi/champ-stats 893c08461a Add tools for printing statistics about trees 037b34afe3 Fix memory leak 79ebe07f31 Merge pull request #220 from arximboldi/map-leak c4be744a49 Try something c37693ac4a Remove vestige 1c780ba19b Fix memory leak 30ce53b4df Add test for memory leak found by oss-fuzz 2a32d5db4d Add update_move operation to map fuzzer d22262967a Merge pull request #216 from arximboldi/hamt-transients-faster-rc-sub 1897252813 Remove vestige f0defde7dd Ensure that champ update operations move the payload in the value 175c05fb3a Fix #219, ambiguous calls to destroy_n c25a272ac7 Move objects whenever possible during champ erasure operations 95889a7aa2 Merge pull request #218 from cyrilRomain/master 898f7d8e82 Fix -fno-exceptions build (regression from 35147686) 1bbfb46bf3 Merge pull request #217 from arximboldi/hamt-transients-faster-rc 9caf11101a Fix ambiguities when compiling in C++17 mode 27132d5183 Mark a bunch of functions as noexcept d004c6e4bf Fix implementation of unordered_copy e3ddbb7a98 Optimize our own implementation of uninitialized_copy 778ad6718f Use std::copy when possible, our own uninitialized_copy elsewhere 265d79a5ba Our own implementations for uninitialied_... are better, use always 54ff4a21a7 Improve implementation of std shims 3514768617 Use standard library implementations of shims whenever possible 98d4f983cb Move values when node can be mutated but needs realloc (champ::update_mut) a89f7c98c6 Move values when node can be mutated but needs realloc (champ::add_mut) 5e9fe0b347 Fix table documentation header 72be85b931 Merge pull request #214 from arximboldi/table-fixes 1f41bbf0ac Improve sequential initialization of HAMTs 4736697d3b Update the documentation of HAMT-based transients efc91fe724 Make immer::table and table_transient use mutation when possible 00f9e49882 Add missing link table_transient in the documentation b8dbc6ab96 Merge pull request #213 from arximboldi/sub-transients f5ebe48b13 Add benchmarks for HAMT erasure 9e62f8ccd5 Ensure that edit markers are set properly during transient updates 175edad908 Sketch mutable removal from HAMTs 815541445d Merge pull request #210 from deadb0d4/single_hash_index 6cc2b39159 Merge pull request #212 from arximboldi/more-transients 9985fc131e review: add to docs/container & fix update docs 002f4e6ba5 Fix mutable HAMT insertion with conflicts dd8a3ac8c5 Test more exception safety of mutable operations on vectors 0f72f261aa Style: clang-format 416f4c71c4 Implement transients for map update() 8f0b8a043f Merge branch 'master' into single_hash_index 3a38bd7662 add docs & run clang-format dbc96d6fc4 add test stub for table_transient db88f93ed5 cosmetics + table tests 70a3620c4e Merge pull request #211 from arximboldi/fix-map-leak 54037e1aaf Fix sanitizers were not properly enabled in CI cf20d291e5 Fix memory leak when mutating inner nodes 88cf946cfc Merge pull request #209 from arximboldi/map-add-transience cb76e80313 add headers + examples 8f01c1babe cosmetic fixes 982aa1f6dc Fix insertion benchmarks 5f42f9069d Mutate collision nodes in-place when possible 7fd0ec4d8d Mutate champ nodes values in place when possible 0c0d313c40 Fix potential destruction of uninitialized values 91d065c9bf Reuse same-sized inner nodes during HAMT insertions 3ea3ae9c45 Sketch implementation interface for transient insertion e3744032a8 Merge pull request #208 from arximboldi/map-transients 22323150fb Add move and transient versions for the HAMT insertion benchmarks a56e6f8007 Style: clang-format a9a672bfb0 Add naive implementation of map and set transients ca255452c3 Add move-based updates on immutable maps and sets eb5056c4cb Add map and set range constructors 440f7519b2 Sketch map and set transient types 6b27170212 Fix compiling some tests would crash b38c67b3a1 Merge pull request #206 from audulus/spm b3139b4055 Immer is compatible with C++14 380dc52dfc Add spm job 9370c89597 Work on SPM support. a1271fa712 Merge pull request #202 from philipcraig/patch-1 9af8724378 Update README.rst 9c7bb910a2 Update README.rst 88887fd9a5 Update README.rst 9da861dea5 Update memory.rst fa61a3ed9d Update atom.hpp d7dd8a729f Update transients.rst 3ceb4be6a1 Update map.hpp e1d29d0dad Update vector.hpp 3d12e12cbb Update array.hpp 749035b5c9 Update array.hpp 1f9910eae1 fix typo d2648aceea Merge pull request #201 from mvtec-richter/patch-1 70d6b6eb16 Fix typo in documentation of diff 0fcf66743e Tweak diff docs ef80e6c5f7 Merge pull request #200 from arximboldi/diff-polish 7ba2196e4c Add missing header 36178a7aa6 Add the diffing algorithm to the fuzzers af99b84519 Document diff algorithm 25b20e77c1 Simplify diff algorithm interface 3db544b73a Avoid passing Differ template param, use universal references d372683b7a Merge pull request #199 from mvtec-richter/add-diff-method-to-map f23dc6cdf7 Remove incorrect usage of std::forward a4482d56e0 Introduce struct differ f91922ec95 Add diff to set and avoid std::pair in champ 0f8eae238c Add diffing algorithm to maps 42e6beafed Merge pull request #197 from bollu/master 926098ccc8 Typo fix: frony -> front 24214158f5 Merge pull request #196 from arximboldi/nix-build-issues 9b770ec715 Do not try to use a build dir, because we have a BUILD file 98a8f1b7a5 Do not rely on git to fetch the code locally 2f12be4d65 Allow changing nixpkgs version d6d27de64a Merge pull request #193 from arximboldi/fix-github-actions 6b299fc0a5 Upgrade Nix related actions a3617d5f3b Disable ssh stuff when it's not me 5adcd67e55 Ignore Nix result links 36d1000deb Fix comment git-subtree-dir: src/immer git-subtree-split: 5875f7739a6c642ad58cbedadb509c86d421217e
2024-11-02 18:50:50 +01:00
//
// immer: immutable data structures for C++
// Copyright (C) 2016, 2017, 2018 Juan Pedro Bolivar Puente
//
// This software is distributed under the Boost Software License, Version 1.0.
// See accompanying file LICENSE or copy at http://boost.org/LICENSE_1_0.txt
//
#include <immer/set.hpp>
#include <immer/set_transient.hpp>
template <typename T,
typename Hash = std::hash<T>,
typename Eq = std::equal_to<T>>
using test_set_t = immer::set<T, Hash, Eq, immer::default_memory_policy, 6u>;
template <typename T,
typename Hash = std::hash<T>,
typename Eq = std::equal_to<T>>
using test_set_transient_t =
immer::set_transient<T, Hash, Eq, immer::default_memory_policy, 6u>;
#define SET_T test_set_t
#define SET_TRANSIENT_T test_set_transient_t
#include "generic.ipp"