immer/0.8.1

Postmodern immutable and persistent data structures for C++ - value semantics at scale
Recipe info
2023-10-10

Available packages
Header Only

Install
Add the following line to your conanfile.txt:
[requires]
immer/0.8.1

Using immer

Note

If you are a new Conan user, we recommend reading the how to consume packages tutorial.

If you need additional assistance, please ask a question in the Conan Center Index repository.

Simplest use case consuming this recipe and assuming CMake as your local build tool:

[requires]
immer/0.8.1
[generators]
CMakeDeps
CMakeToolchain
[layout]
cmake_layout
from conan import ConanFile
from conan.tools.cmake import cmake_layout


class ExampleRecipe(ConanFile):
    settings = "os", "compiler", "build_type", "arch"
    generators = "CMakeDeps", "CMakeToolchain"

    def requirements(self):
        self.requires("immer/0.8.1")

    def layout(self):
        cmake_layout(self)

Now, you can run this Conan command to locally install (and build if necessary) this recipe and its dependencies (if any):

$ conan install conanfile.txt --build=missing

Useful information to take into account to consume this library:


These are the main declared targets:

  • CMake package name(s): immer
  • CMake target name(s): immer::immer
  • pkg-config file name(s): immer.pc

A simple use case using the CMake file name and the global target:

# ...
find_package(immer REQUIRED)
# ...
target_link_libraries(YOUR_TARGET immer::immer)

These are all the available headers. Some of these ones might be non-public; make sure of it by visiting the immer homepage listed above:

#include "benchmark/config.hpp"
#include "benchmark/set/access.hpp"
#include "benchmark/set/erase.hpp"
#include "benchmark/set/insert.hpp"
#include "benchmark/set/iter.hpp"
#include "benchmark/set/memory/memory.hpp"
#include "benchmark/vector/access.hpp"
#include "benchmark/vector/assoc.hpp"
#include "benchmark/vector/common.hpp"
#include "benchmark/vector/concat.hpp"
#include "benchmark/vector/drop.hpp"
#include "benchmark/vector/push.hpp"
#include "benchmark/vector/push_front.hpp"
#include "benchmark/vector/take.hpp"
#include "extra/fuzzer/fuzzer_gc_guard.hpp"
#include "extra/fuzzer/fuzzer_input.hpp"
#include "extra/fuzzer/load_input.hpp"
#include "extra/guile/scm/detail/convert.hpp"
#include "extra/guile/scm/detail/define.hpp"
#include "extra/guile/scm/detail/finalizer_wrapper.hpp"
#include "extra/guile/scm/detail/function_args.hpp"
#include "extra/guile/scm/detail/invoke.hpp"
#include "extra/guile/scm/detail/pack.hpp"
#include "extra/guile/scm/detail/subr_wrapper.hpp"
#include "extra/guile/scm/detail/util.hpp"
#include "extra/guile/scm/group.hpp"
#include "extra/guile/scm/list.hpp"
#include "extra/guile/scm/scm.hpp"
#include "extra/guile/scm/type.hpp"
#include "extra/guile/scm/val.hpp"
#include "immer/algorithm.hpp"
#include "immer/array.hpp"
#include "immer/array_transient.hpp"
#include "immer/atom.hpp"
#include "immer/box.hpp"
#include "immer/config.hpp"
#include "immer/detail/arrays/no_capacity.hpp"
#include "immer/detail/arrays/node.hpp"
#include "immer/detail/arrays/with_capacity.hpp"
#include "immer/detail/combine_standard_layout.hpp"
#include "immer/detail/hamts/bits.hpp"
#include "immer/detail/hamts/champ.hpp"
#include "immer/detail/hamts/champ_iterator.hpp"
#include "immer/detail/hamts/node.hpp"
#include "immer/detail/iterator_facade.hpp"
#include "immer/detail/rbts/bits.hpp"
#include "immer/detail/rbts/node.hpp"
#include "immer/detail/rbts/operations.hpp"
#include "immer/detail/rbts/position.hpp"
#include "immer/detail/rbts/rbtree.hpp"
#include "immer/detail/rbts/rbtree_iterator.hpp"
#include "immer/detail/rbts/rrbtree.hpp"
#include "immer/detail/rbts/rrbtree_iterator.hpp"
#include "immer/detail/rbts/visitor.hpp"
#include "immer/detail/ref_count_base.hpp"
#include "immer/detail/type_traits.hpp"
#include "immer/detail/util.hpp"
#include "immer/experimental/detail/dvektor_impl.hpp"
#include "immer/experimental/dvektor.hpp"
#include "immer/flex_vector.hpp"
#include "immer/flex_vector_transient.hpp"
#include "immer/heap/cpp_heap.hpp"
#include "immer/heap/debug_size_heap.hpp"
#include "immer/heap/free_list_heap.hpp"
#include "immer/heap/free_list_node.hpp"
#include "immer/heap/gc_heap.hpp"
#include "immer/heap/heap_policy.hpp"
#include "immer/heap/identity_heap.hpp"
#include "immer/heap/malloc_heap.hpp"
#include "immer/heap/split_heap.hpp"
#include "immer/heap/tags.hpp"
#include "immer/heap/thread_local_free_list_heap.hpp"
#include "immer/heap/unsafe_free_list_heap.hpp"
#include "immer/heap/with_data.hpp"
#include "immer/lock/no_lock_policy.hpp"
#include "immer/lock/spinlock_policy.hpp"
#include "immer/map.hpp"
#include "immer/map_transient.hpp"
#include "immer/memory_policy.hpp"
#include "immer/refcount/enable_intrusive_ptr.hpp"
#include "immer/refcount/no_refcount_policy.hpp"
#include "immer/refcount/refcount_policy.hpp"
#include "immer/refcount/unsafe_refcount_policy.hpp"
#include "immer/set.hpp"
#include "immer/set_transient.hpp"
#include "immer/table.hpp"
#include "immer/table_transient.hpp"
#include "immer/transience/gc_transience_policy.hpp"
#include "immer/transience/no_transience_policy.hpp"
#include "immer/vector.hpp"
#include "immer/vector_transient.hpp"
#include "test/dada.hpp"
#include "test/oss-fuzz/input.hpp"
#include "test/transient_tester.hpp"
#include "test/util.hpp"
#include "tools/include/prettyprint.hpp"