GlitchyByte Lib  0.3.1
GlitchyByte general library to bootstrap development.
Namespaces | Classes | Variables
gb Namespace Reference

Namespaces

 strings
 
 terminal
 

Classes

class  Random
 
class  RandomMT
 
class  RandomMT64
 
class  ShutdownMonitor
 
class  StringInterpolationVars
 
class  Task
 
class  TaskRunner
 

Variables

constinit bool _false { false }
 
constinit bool _true { true }
 
template<typename T >
concept Numeric = std::integral<T> || std::floating_point<T>
 
template<class TContainer >
concept HasSize
 
template<class TContainer >
concept HasIterator
 
template<class TContainer >
concept HasConstValueTypeIterator
 
template<class TContainer >
concept HasNonConstValueTypeIterator
 
template<class TContainer >
concept HasIndexOperator
 
template<class TContainer >
concept IterableContainer = HasSize<TContainer> && HasIterator<TContainer>
 
template<class TContainer >
concept IndexableContainer = HasSize<TContainer> && HasIndexOperator<TContainer>
 

Variable Documentation

◆ _false

constinit bool gb::_false { false }
inline

False typed RValue. Normally used with atomic compares.

◆ _true

constinit bool gb::_true { true }
inline

True typed RValue. Normally used with atomic compares.

◆ Numeric

template<typename T >
concept gb::Numeric = std::integral<T> || std::floating_point<T>

◆ HasSize

template<class TContainer >
concept gb::HasSize
Initial value:
= requires(TContainer tContainer) {
{ tContainer.size() } -> std::convertible_to<size_t>;
}

◆ HasIterator

template<class TContainer >
concept gb::HasIterator
Initial value:
= requires(TContainer tContainer) {
typename TContainer::value_type;
typename TContainer::iterator;
typename TContainer::const_iterator;
std::is_same_v<typename std::iterator_traits<typename TContainer::iterator>::value_type, typename TContainer::value_type>;
{ tContainer.begin() } -> std::input_iterator;
}

◆ HasConstValueTypeIterator

template<class TContainer >
concept gb::HasConstValueTypeIterator
Initial value:
= requires {
requires HasIterator<TContainer>;
requires std::is_same_v<typename TContainer::iterator, typename TContainer::const_iterator>;
}

◆ HasNonConstValueTypeIterator

template<class TContainer >
concept gb::HasNonConstValueTypeIterator
Initial value:
= requires {
requires HasIterator<TContainer>;
requires !std::is_same_v<typename TContainer::iterator, typename TContainer::const_iterator>;
}

◆ HasIndexOperator

template<class TContainer >
concept gb::HasIndexOperator
Initial value:
= requires(TContainer tContainer, size_t index) {
typename TContainer::value_type;
{ tContainer[index] } -> std::same_as<typename TContainer::value_type&>;
}

◆ IterableContainer

template<class TContainer >
concept gb::IterableContainer = HasSize<TContainer> && HasIterator<TContainer>

◆ IndexableContainer

template<class TContainer >
concept gb::IndexableContainer = HasSize<TContainer> && HasIndexOperator<TContainer>