Metall v0.30
A persistent memory allocator for data-centric analytics
 
Loading...
Searching...
No Matches
metall_containers.cpp

This is an example of how to use Metall containers.

// Copyright 2020 Lawrence Livermore National Security, LLC and other Metall
// Project Developers. See the top-level COPYRIGHT file for details.
//
// SPDX-License-Identifier: (Apache-2.0 OR MIT)
// Boost 1.81 or later is required
#if BOOST_VERSION >= 108100
#endif
// Boost 1.82 or later is required
#if BOOST_VERSION >= 108200
#endif
using namespace metall;
namespace mc = metall::container;
int main() {
manager mg(create_only, "/tmp/dir");
auto *deque = mg.construct<mc::deque<int>>("deque")(mg.get_allocator());
mg.destroy_ptr(deque);
mg.construct<mc::list<int>>("list")(mg.get_allocator());
mg.construct<mc::map<int, int>>("map")(mg.get_allocator());
mg.construct<mc::multimap<int, int>>("mmap")(mg.get_allocator());
mg.construct<mc::set<int>>("set")(mg.get_allocator());
mg.construct<mc::multiset<int>>("multiset")(mg.get_allocator());
mg.construct<mc::unordered_map<int, int>>("unordered_map")(
mg.get_allocator());
mg.construct<mc::unordered_multimap<int, int>>("unordered_multimap")(
mg.get_allocator());
mg.construct<mc::unordered_set<int>>("unordered_set")(mg.get_allocator());
mg.construct<mc::unordered_multiset<int>>("unordered_multiset")(
mg.get_allocator());
#if BOOST_VERSION >= 108100
mg.construct<mc::unordered_flat_map<int, int>>("unordered_flat_map")(
mg.get_allocator());
mg.construct<mc::unordered_flat_set<int>>("unordered_flat_set")(
mg.get_allocator());
#endif
#if BOOST_VERSION >= 108200
mg.construct<mc::unordered_node_map<int, int>>("unordered_node_map")(
mg.get_allocator());
mg.construct<mc::unordered_node_set<int>>("unordered_node_set")(
mg.get_allocator());
#endif
mg.construct<mc::vector<int>>("vector")(mg.get_allocator());
mg.construct<mc::stack<int>>("stack")(mg.get_allocator());
mg.construct<mc::queue<int>>("queue")(mg.get_allocator());
mg.construct<mc::priority_queue<int>>("priority_queue")(mg.get_allocator());
mg.construct<mc::string>("string")(mg.get_allocator());
mg.construct<mc::wstring>("wstring")(mg.get_allocator());
using innger_set = mc::set<int>;
using vec_of_sets =
mg.construct<vec_of_sets>("vec-sets")(mg.get_allocator());
return 0;
}
int main()
Definition jgraph.cpp:24
Namespace for Metall container.
basic_string< char > string
A string container that uses char as its character type and Metall as its default allocator.
Definition string.hpp:23
basic_string< wchar_t > wstring
A string container that uses wchar_t as its character type and Metall as its default allocator.
Definition string.hpp:27
boost::container::vector< T, Allocator > vector
A vector container that uses Metall as its default allocator.
Definition vector.hpp:17
The top level of namespace of Metall.
Definition basic_manager.hpp:22
basic_manager<> manager
Default Metall manager class which is an alias of basic_manager with the default template parameters.
Definition metall.hpp:34