ALib C++ Library
Library Version: 2312 R0
Documentation generated by doxygen
Public Types | Public Fields | Public Methods | List of all members
DbgStringTable< TAssociatedTypes > Struct Template Reference

#include <dbgboxing.hpp>

Inheritance diagram for DbgStringTable< TAssociatedTypes >:
[legend]
Collaboration diagram for DbgStringTable< TAssociatedTypes >:
[legend]

Class Description

template<typename... TAssociatedTypes>
struct aworx::lib::boxing::detail::DbgStringTable< TAssociatedTypes >


Template class implementing a monotonically allocated vector of variadic tuples whose first element is of type String.

When new tuples are added with method Add, then memory for copying the provided string is allocated using an internal field of type MonoAllocator. This allows to add single strings, which are allocated in bigger memory chunks.

Standard vector operations, including insertions and deletions are still allowed. In other words, it is allowed to store string objects which are pointing to string data that is not allocated in the internal chunks.

The associated values are especially useful when the vector is sorted (e.g. using std::sort), because such associations will be kept intact and allow referencing back to whatever the strings represents.

Availability

This struct is only available if compilation symbol ALIB_DEBUG_BOXING is set and furthermore, module ALib Text is included in the ALib Distribution.

Definition at line 52 of file dbgboxing.hpp.

Public Types

using Base = std::vector< ElementType >
 
using ElementType = std::tuple< String, TAssociatedTypes... >
 

Public Fields

MonoAllocatorallocator
 

Public Methods

 DbgStringTable (MonoAllocator &monoAllocator)
 
template<typename... TArgs>
StringAdd (const String &src, TArgs &&... args)
 

Member Typedef Documentation

◆ Base

using Base = std::vector<ElementType>

Shortcut to the base type of this type.

Definition at line 58 of file dbgboxing.hpp.

◆ ElementType

using ElementType = std::tuple<String, TAssociatedTypes...>

Shortcut to the std::tuple-type that instantiations of this template class store.

Definition at line 55 of file dbgboxing.hpp.

Constructor & Destructor Documentation

◆ DbgStringTable()

DbgStringTable ( MonoAllocator monoAllocator)
inline

Constructor.

Parameters
monoAllocatorA mono allocator used to create copies of the inserted strings

Definition at line 67 of file dbgboxing.hpp.

Member Function Documentation

◆ Add()

String& Add ( const String src,
TArgs &&...  args 
)
inline

Adds a tuple. The contents of the string of the tuple (its first element) is copied from the given string src. The memory for this string is allocated using the allocator provided in the constructor.
The other members of the tuple added are forwarded from variadic parameter block args.

Parameters
srcThe string to copy into the first member of the tuple.
argsVariadic arguments to fill the rest of the inserted tuple.
Returns
A reference to the string that was added.

Definition at line 83 of file dbgboxing.hpp.

Here is the call graph for this function:

Member Data Documentation

◆ allocator

MonoAllocator& allocator

Allocator for making copies of inserted strings

Definition at line 61 of file dbgboxing.hpp.


The documentation for this struct was generated from the following file: