Broom 1.0.0
A thread-local C++ Garbage Collector
Loading...
Searching...
No Matches
Namespaces | Concepts | Typedefs | Functions | Variables
globals.h File Reference
#include <bit>
#include <cstdint>
#include <limits>
#include <type_traits>
#include "src/macros.h"
Include dependency graph for globals.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  broom
 

Concepts

concept  broom::StaticCastable
 
concept  broom::ReinterpretCastable
 
concept  broom::IsAllocatorMetadata
 

Typedefs

using broom::MemoryAddress = uintptr_t
 
using broom::UintPtr = uintptr_t
 
using broom::IntPtr = intptr_t
 

Functions

template<typename T , typename U >
requires StaticCastable<U, T> && (!IsAllocatorMetadata<T>)
constexprbroom::SafeCast (U v)
 
template<typename T , typename U >
requires ReinterpretCastable<U, T> && (!StaticCastable<U, T>) && (!IsAllocatorMetadata<T>)
constexprbroom::SafeCast (U v)
 
template<typename T , typename U >
constexprbroom::UnsafeCast (U v)
 
template<size_t N, typename T >
requires std::is_integral_v<T> && (N > 0) && (N % 2 == 0)
constexpr bool broom::IsAligned (T value)
 
template<size_t N, typename T >
requires (N > 0) && (N % 2 == 0)
constexpr bool broom::IsAligned (T *value)
 
template<size_t N, typename T >
requires std::is_integral_v<T> && (N > 0) && (N % 2 == 0)
constexprbroom::RoundDown (T value)
 
template<size_t N, typename T >
requires std::is_integral_v<T> && (N > 0) && (N % 2 == 0)
constexprbroom::RoundUp (T value)
 
template<typename T >
requires std::is_unsigned_v<T>
constexpr bool broom::AddOverflowChecked (T lhs, T rhs, T &destination)
 

Variables

constexpr const uintptr_t broom::kNullUintPtr = 0
 
constexpr const intptr_t broom::kNullIntPtr = 0
 
constexpr const MemoryAddress broom::kNullMemoryAddress = 0
 
constexpr const int broom::kPointerSize = sizeof(void*)
 
constexpr const int broom::kUintPtrSize = sizeof(UintPtr)
 
constexpr const int broom::kIntPtrSize = sizeof(IntPtr)
 
constexpr const size_t broom::KB = 1024
 
constexpr const size_t broom::MB = KB * 1024
 
constexpr const size_t broom::GB = MB * 1024
 
constexpr const size_t broom::TB = GB * 1024
 
constexpr const int broom::kPageSize = 4 * KB
 
constexpr const int broom::kHugePageSize = 2 * MB