VectorPro
High-performance, header-only dynamic array with configurable growth policy, custom allocator support, and optional modification-event notifications.
Loading...
Searching...
No Matches
Vector.h File Reference
#include "Iterator.h"
#include <algorithm>
#include <compare>
#include <concepts>
#include <cstddef>
#include <cstdint>
#include <cstring>
#include <functional>
#include <initializer_list>
#include <iterator>
#include <limits>
#include <memory>
#include <optional>
#include <span>
#include <stdexcept>
#include <type_traits>
#include <utility>
#include "Vector.tpp"
Include dependency graph for Vector.h:

Go to the source code of this file.

Classes

struct  VectorPro::detail::ListenerStore< ListenerFn, Enabled >
 Listener bookkeeping storage, conditionally present. More...
 
struct  VectorPro::detail::ListenerStore< ListenerFn, false >
 Empty specialization used when event support is disabled. More...
 
class  VectorPro::Vector< T, Allocator, GrowthNum, GrowthDen, EnableEvents >
 A dynamically resizable contiguous array. More...
 
struct  VectorPro::Vector< T, Allocator, GrowthNum, GrowthDen, EnableEvents >::EventData
 Describes a vector modification event. More...
 

Namespaces

namespace  VectorPro
 
namespace  VectorPro::detail
 
namespace  rain
 Umbrella alias so this library's types are reachable as rain::Vector, alongside every other project library, while its true namespace (and all internal diagnostics/static_asserts) remains VectorPro. Reopens rain rather than aliasing it, since multiple libraries each contribute their own names into the same rain namespace – an alias (namespace rain = VectorPro;) can only ever bind to one target and collides the moment a second library declares its own rain alias to something else. Declared here only (VectorPro's main header); internal headers like Iterator.h do not redeclare this.
 

Concepts

concept  VectorPro::Listener
 Constrains listener callbacks usable with Vector:subscribe().
 

Typedefs

template<typename T , typename Allocator = std::allocator<T>, std::size_t GrowthNum = 2, std::size_t GrowthDen = 1>
using VectorPro::ObservableVector = Vector< T, Allocator, GrowthNum, GrowthDen, true >
 Convenience alias for a Vector with event notifications enabled.
 

Functions

template<typename T , typename Allocator , std::size_t GrowthNum, std::size_t GrowthDen, bool EnableEvents>
void VectorPro::swap (Vector< T, Allocator, GrowthNum, GrowthDen, EnableEvents > &a, Vector< T, Allocator, GrowthNum, GrowthDen, EnableEvents > &b) noexcept
 Exchanges the contents of two vectors.
 

Detailed Description

Date
2026-07-14
Version
1.0.0
Attention
This source is released under the MIT license SPDX-License-Identifier: MIT http://opensource.org/licenses/MIT