GEOS
Classes | Namespaces | Macros | Typedefs
StdContainerWrappers.hpp File Reference
#include <array>
#include <cstddef>
#include <vector>
#include <map>
#include <unordered_map>
#include <memory>
#include <iostream>

Go to the source code of this file.

Classes

class  geos::mapType< TKEY, TVAL, SORTED >
 Base template for ordered and unordered maps. More...
 
class  geos::mapBase< TKEY, TVAL, SORTED >
 Base template for ordered and unordered maps. More...
 
struct  geos::stdArray< T, N >
 

Namespaces

 geos
 

Macros

#define USE_STD_CONTAINER_BOUNDS_CHECKING   false
 Compile-time flag that enables or disables runtime bounds checking in GEOS container wrappers.
 

Typedefs

template<typename T , typename Allocator = std::allocator< T >>
using geos::stdVector = internal::StdVectorWrapper< T, Allocator, USE_STD_CONTAINER_BOUNDS_CHECKING >
 
template<typename Key , typename T , typename Compare = std::less< Key >, typename Allocator = std::allocator< std::pair< const Key, T > >>
using geos::stdMap = internal::StdMapWrapper< std::map< Key, T, Compare, Allocator >, USE_STD_CONTAINER_BOUNDS_CHECKING >
 
template<typename Key , typename T , typename Hash = std::hash< Key >, typename KeyEqual = std::equal_to< Key >, typename Allocator = std::allocator< std::pair< const Key, T > >>
using geos::stdUnorderedMap = internal::StdMapWrapper< std::unordered_map< Key, T, Hash, KeyEqual, Allocator >, USE_STD_CONTAINER_BOUNDS_CHECKING >
 

Functions

Ordered and unordered map types.

OLD VERSION, TO BE REMOVED

template<typename _Tp , typename ... _Up>
 geos::stdArray (_Tp, _Up ...) -> stdArray< std::enable_if_t<(std::is_same_v< _Tp, _Up > &&...), _Tp >, 1+sizeof...(_Up) >
 Deduction guide for stdArray Allows the element type and array size to be automatically deduced from the initialization list. More...
 
template<typename T , std::size_t N, std::size_t... Is>
constexpr stdArray< T, N > geos::to_stdArray_impl (std::array< T, N > const &arr, std::index_sequence< Is... >)
 Helper function that convert a std::array into a stdArray by expanding its elements. More...
 
template<typename T , std::size_t N>
constexpr stdArray< T, N > geos::to_stdArray (std::array< T, N > const &arr)
 Convert an std::array to an stdArray. More...
 

Detailed Description

Warning
: It is prohibited to use std::map or std::unordered_map in the geos repos.

Usage

There are two ways to declare a map or unordered_map:

  1. stdMap / stdUnorderedMap:
    • These types replace std::map with an overridden operator[] for bounds checking.
    • We cannot use the operator[] for the insertion.
  2. geos::map / geos::unordered_map:
    • Use these types to ensure the compatibility with the geos packing, as stdMap is not yet compatible.

Definition in file StdContainerWrappers.hpp.