Classes | Namespaces | Typedefs | Enumerations | Functions
circular_array.hpp File Reference

Implementation of a generic circular array container. More...

#include <array>
#include <cstdint>
#include <iterator>
#include <stdexcept>
#include <type_traits>
#include <utility>
#include <beluga/utility/indexing_iterator.hpp>
Include dependency graph for circular_array.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  beluga::CircularArray< T, N, F >
 An implementation of generic, non-threadsafe circular array. More...
 
struct  std::tuple_element< I, beluga::CircularArray< T, N, F > >
 std::tuple_element specialization for circular arrays. More...
 
struct  std::tuple_size< beluga::CircularArray< T, N, F > >
 std::tuple_size specialization for circular arrays. More...
 

Namespaces

 beluga
 The main Beluga namespace.
 
 std
 

Typedefs

template<typename T , std::size_t N>
using beluga::RollingWindow = CircularArray< T, N, CircularArrayFeatureFlags::kRolloverOnWrite|CircularArrayFeatureFlags::kExtrapolateOnRead|CircularArrayFeatureFlags::kLayoutReversal >
 Convenient type alias for a circular array that behaves like a rolling window. More...
 

Enumerations

enum  beluga::CircularArrayFeatureFlags : std::int8_t { beluga::CircularArrayFeatureFlags::kNone = 0x00, beluga::CircularArrayFeatureFlags::kRolloverOnWrite = 0x01, beluga::CircularArrayFeatureFlags::kExtrapolateOnRead = 0x02, beluga::CircularArrayFeatureFlags::kLayoutReversal = 0x04 }
 Feature flags for circular arrays. More...
 

Functions

template<std::size_t I, class T , std::size_t N, CircularArrayFeatureFlags F>
constexpr T && beluga::get (CircularArray< T, N, F > &&array) noexcept
 Gets an rvalue reference to the ith value in a given array. More...
 
template<std::size_t I, class T , std::size_t N, CircularArrayFeatureFlags F>
constexpr T & beluga::get (CircularArray< T, N, F > &array) noexcept
 Gets an lvalue reference to the ith value in a given array. More...
 
template<std::size_t I, class T , std::size_t N, CircularArrayFeatureFlags F>
constexpr const T && beluga::get (const CircularArray< T, N, F > &&array) noexcept
 Gets a constant rvalue reference to the ith value in a given array. More...
 
template<std::size_t I, class T , std::size_t N, CircularArrayFeatureFlags F>
constexpr const T & beluga::get (const CircularArray< T, N, F > &array) noexcept
 Gets a constant lvalue reference to the ith value in a given array. More...
 
constexpr bool beluga::operator& (CircularArrayFeatureFlags mask, CircularArrayFeatureFlags flag)
 Bitwise AND operator overload to check of the presence of a feature flag in a feature mask. More...
 
template<typename T , std::size_t N, CircularArrayFeatureFlags F>
CircularArray< T, N, F > & beluga::operator<< (CircularArray< T, N, F > &array, T value)
 Convenient stream operator overload to push a value to a circular array. More...
 
constexpr CircularArrayFeatureFlags beluga::operator| (CircularArrayFeatureFlags lflag, CircularArrayFeatureFlags rflag)
 Bitwise OR operator overload to combine two feature flags in a single mask-like flag. More...
 
template<typename T , std::size_t N, CircularArrayFeatureFlags F, CircularArrayFeatureFlags G>
constexpr void beluga::swap (CircularArray< T, N, F > &a, CircularArray< T, N, G > &b)
 Swaps arrays a and b. More...
 

Detailed Description

Implementation of a generic circular array container.

Definition in file circular_array.hpp.



beluga
Author(s):
autogenerated on Tue Jul 16 2024 02:59:53