aboutsummaryrefslogtreecommitdiff
path: root/libbutl/multi-index.mxx
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2021-09-28 19:24:31 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2021-09-28 20:29:59 +0300
commitdf1ef68cd8e8582724ce1192bfc202e0b9aeaf0c (patch)
treeb731ca4c68e60c00c7e7d499dbf4868ee7b71f44 /libbutl/multi-index.mxx
parent7a4fc37f264cdb67f2f83fa92703c869215bbc86 (diff)
Get rid of C++ modules related code and rename *.mxx files to *.hxx
Diffstat (limited to 'libbutl/multi-index.mxx')
-rw-r--r--libbutl/multi-index.mxx72
1 files changed, 0 insertions, 72 deletions
diff --git a/libbutl/multi-index.mxx b/libbutl/multi-index.mxx
deleted file mode 100644
index d51bdfc..0000000
--- a/libbutl/multi-index.mxx
+++ /dev/null
@@ -1,72 +0,0 @@
-// file : libbutl/multi-index.mxx -*- C++ -*-
-// license : MIT; see accompanying LICENSE file
-
-#ifndef __cpp_modules_ts
-#pragma once
-#endif
-
-// C includes.
-
-#ifndef __cpp_lib_modules_ts
-#include <utility> // declval()
-#include <functional> // hash
-#endif
-
-// Other includes.
-
-#ifdef __cpp_modules_ts
-export module butl.multi_index;
-#ifdef __cpp_lib_modules_ts
-import std.core;
-#endif
-#endif
-
-#include <libbutl/export.hxx>
-
-LIBBUTL_MODEXPORT namespace butl
-{
- // Google the "Emulating Boost.MultiIndex with Standard Containers" blog
- // post for details.
- //
-
- template <typename T>
- struct map_key
- {
- mutable const T* p;
-
- map_key (const T* v = 0): p (v) {}
- bool operator< (const map_key& x) const {return *p < *x.p;}
- bool operator== (const map_key& x) const {return *p == *x.p;}
- };
-
- template <typename I>
- struct map_iterator_adapter: I
- {
- typedef const typename I::value_type::second_type value_type;
- typedef value_type* pointer;
- typedef value_type& reference;
-
- map_iterator_adapter () {}
- map_iterator_adapter (I i): I (i) {}
-
- map_iterator_adapter&
- operator= (I i) {static_cast<I&> (*this) = i; return *this;}
-
- reference operator* () const {return I::operator* ().second;}
- pointer operator-> () const {return &I::operator-> ()->second;}
- };
-}
-
-LIBBUTL_MODEXPORT namespace std
-{
- template <typename T>
- struct hash<butl::map_key<T>>: hash<T>
- {
- size_t
- operator() (butl::map_key<T> x) const
- noexcept (noexcept (declval<hash<T>> () (*x.p)))
- {
- return hash<T>::operator() (*x.p);
- }
- };
-}