Skip to content

File include/brisk/core/BasicTypes.hpp


one function

template <typename T> std::span<T> one(T &value) noexcept

Creates a std::span representing a view over a single mutable element.

This function template constructs a std::span<T\> from a reference to a single element of type T. The span provides read and write access to the element.
Template param T The type of the element.
Param value A reference to the element of type T. This element will be used to create the span.
Returns A std::span<T\> representing a view over the single element value. The span has a size of 1 and points to the memory address of value.


template <typename T>
std::span<const T> one(const T &value) noexcept

Creates a std::span representing a view over a single immutable element.

This function template constructs a std::span<const T\> from a reference to a single constant element of type T. The span provides read-only access to the element.
Template param T The type of the element.
Param value A reference to the constant element of type T. This element will be used to create the span.
Returns A std::span<const T\> representing a view over the single element value. The span has a size of 1 and points to the memory address of value.


string function

using std::string

@fileType alias definitions and utility functions for working with various string and byte types.


byte typedef

byte = uint8_t

Type alias for a single byte (8-bit unsigned integer).


U8Char typedef

U8Char = char

Type alias for UTF-8 characters (fallback to ASCII character type).


U8String typedef

U8String = std::string

Type alias for UTF-8 strings (fallback to ASCII string type).


U8StringView typedef

U8StringView = std::string_view

Type alias for UTF-8 string views (fallback to ASCII string view type).


AsciiChar typedef

AsciiChar = char

Type alias for ASCII characters.


AsciiString typedef

AsciiString = std::string

Type alias for ASCII strings.


AsciiStringView typedef

AsciiStringView = std::string_view

Type alias for ASCII string views.


charIsUtf8 variable

constexpr inline bool charIsUtf8 = true

A constant indicating that the character type is UTF-8.


UChar16 typedef

UChar16 = char16_t

Type alias for UTF-16 characters.


UChar32 typedef

UChar32 = char32_t

Type alias for UTF-32 characters.


WChar typedef

WChar = wchar_t

Type alias for wide characters.


U16String typedef

U16String = std::u16string

Type alias for UTF-16 strings.


U16StringView typedef

U16StringView = std::u16string_view

Type alias for UTF-16 string views.


U32String typedef

U32String = std::u32string

Type alias for UTF-32 strings.


U32StringView typedef

U32StringView = std::u32string_view

Type alias for UTF-32 string views.


WString typedef

WString = std::wstring

Type alias for wide strings.


WStringView typedef

WStringView = std::wstring_view

Type alias for wide string views.


simpleMemoryRepresentation variable

template <typename T>
constexpr inline bool simpleMemoryRepresentation =
    (std::has_unique_object_representations_v<T> ||
     std::is_floating_point_v<T> ||
     std::is_same_v<T, bool>) &&
    (alignof(T) <= sizeof(T))

A compile-time constant determining if a type has a simple memory representation.

A type is considered to have a simple memory representation if it has unique object representations, is a floating-point type, or is a boolean type, and its alignment is less than or equal to its size.


asBytesView function

template <typename Type>
inline bytes_view asBytesView(const Type &value)
  requires simpleMemoryRepresentation<Type>

Converts an object of type T to a non-modifiable view of bytes.

This function requires that the type T has a simple memory representation.
Param value The object to convert.
Returns A bytes_view representing the object as a sequence of bytes.


toBytesView function

template <typename Container,
          typename T =
              typename std::decay_t<Container>::value_type>
inline bytes_view toBytesView(Container &&cont)
  requires std::is_constructible_v<std::span<const T>,
                                   Container &>

Converts a container to a non-modifiable view of bytes.

This function works for containers that may be converted to a std::span<const T\>.
Param cont The container to convert.
Returns A bytes_view representing the container's elements as a sequence of bytes.


template <size_t N>
inline bytes_view toBytesView(const char (&str)[N])

Converts a null-terminated C-string to a non-modifiable view of bytes.
Param str The null-terminated C-string to convert.
Returns A bytes_view representing the C-string as a sequence of bytes, excluding null byte.


template <size_t N>
inline bytes_view toBytesView(const char8_t (&str)[N])

Converts a null-terminated UTF-8 C-string to a non-modifiable view of bytes.
Param str The null-terminated UTF-8 C-string to convert.
Returns A bytes_view representing the UTF-8 C-string as a sequence of bytes, excluding null byte.


template <size_t N>
inline bytes_view toBytesView(const char16_t (&str)[N])

Converts a null-terminated UTF-16 C-string to a non-modifiable view of bytes.
Param str The null-terminated UTF-16 C-string to convert.
Returns A bytes_view representing the UTF-16 C-string as a sequence of bytes, excluding null.


template <size_t N>
inline bytes_view toBytesView(const char32_t (&str)[N])

Converts a null-terminated UTF-32 C-string to a non-modifiable view of bytes.
Param str The null-terminated UTF-32 C-string to convert.
Returns A bytes_view representing the UTF-32 C-string as a sequence of bytes, excluding null.


template <size_t N>
inline bytes_view toBytesView(const wchar_t (&str)[N])

Converts a null-terminated wide C-string to a non-modifiable view of bytes.
Param str The null-terminated wide C-string to convert.
Returns A bytes_view representing the wide C-string as a sequence of bytes, excluding null.


toBytesMutableView function

template <typename Container,
          typename T =
              typename std::decay_t<Container>::value_type,
          std::enable_if_t<std::is_constructible_v<
              std::span<T>, Container &>> * = nullptr>
inline bytes_mutable_view
toBytesMutableView(Container &&cont)

Converts a container to a modifiable view of bytes.

This function works for containers that may be converted to a std::span<T\>.
Param cont The container to convert.
Returns A bytes_mutable_view representing the container's elements as a sequence of bytes.


toBytes function

template <typename T> inline bytes toBytes(T &&value)

Converts an object to a vector of bytes.

This function first converts the object to a bytes_view, then creates a bytes vector from it.
Param value The object to convert.
Returns A bytes vector representing the object as a sequence of bytes.


toStringView function

template <typename T>
inline std::string_view toStringView(T &&value)

Converts an object to a std::string_view.

This function first converts the object to a bytes_view, then creates a std::string_view from it.
Param value The object to convert.
Returns A std::string_view representing the object as a sequence of characters.


Encoding enum

enum class Encoding : uint8_t

EncodingEnum class representing different text encodings.

This enum class defines various text encodings that can be used to represent characters in a digital format.

Utf8 enumerator (Encoding::Utf8)

*/

Utf16 enumerator (Encoding::Utf16)

*/

Utf32 enumerator (Encoding::Utf32)

*/


defaultNames variable

template <>
inline constexpr std::initializer_list<
    NameValuePair<Encoding>>
    defaultNames<Encoding>

Names for the Encoding enum values.


safeCharPtr function

inline std::string_view safeCharPtr(const char *s)

Converts a const char* to a std::string_view, handling nullptr gracefully.

This function takes a pointer to a null-terminated C-string. If the pointer is non-null, it returns a std::string_view that references the string. If the pointer is nullptr, it returns a std::string_view with the value "(null)" to represent the absence of a string.
Param s A pointer to a null-terminated C-string. Can be nullptr.
Returns A std::string_view that either references the input C-string or is set to "(null)" if the input pointer is nullptr.


Range class

template <typename T, bool inclusive = false> Range

A template class representing a range of values.

The Range class template defines a range with a minimum and maximum value of type T. It provides various methods to perform operations such as calculating distance, union, intersection, and checking if a value is contained within the range.
Template param T The type of the values in the range. It must support arithmetic operations.

min variable (Range::min)

T min

The minimum value of the range.

max variable (Range::max)

T max

The maximum value of the range.

distance function (Range::distance)

constexpr T distance() const noexcept

Computes the distance between the minimum and maximum values of the range.
Returns The distance between max and min.

union_ function (Range::union_)

constexpr Range union_(const Range &b) const noexcept

Computes the union of this range with another range.

The union of two ranges is a range that spans from the minimum of the two ranges to the maximum of the two ranges.
Param b The other range to compute the union with.
Returns A new Range representing the union of this range and b.

intersection function (Range::intersection)

constexpr Range intersection(const Range &b) const noexcept

Computes the intersection of this range with another range.

The intersection of two ranges is a range that spans from the maximum of the two ranges' minimums to the minimum of the two ranges' maximums. If the ranges do not overlap, the result will be an empty range.
Param b The other range to compute the intersection with.
Returns A new Range representing the intersection of this range and b.

contains function (Range::contains)

constexpr bool contains(T value) const noexcept

Checks if a value is contained within the range.
Param value The value to check for containment.
Returns true if value is greater than or equal to min and less than max; otherwise, false.

empty function (Range::empty)

constexpr bool empty() const noexcept

Checks if the range is empty.

A range is considered empty if max is less than or equal to min.
Returns true if max is less than or equal to min; otherwise, false.

intersects function (Range::intersects)

constexpr bool
intersects(const Range<T> &other) const noexcept

Checks if this range intersects with another range.

Two ranges intersect if their intersection is not empty.
Param other The other range to check for intersection.
Returns true if this range intersects with other; otherwise, false.

operator+ function (Range::operator+)

constexpr Range operator+(T b) const noexcept

Shifts the range by adding a value to both the minimum and maximum.
Param b The value to add to both min and max.
Returns A new Range that represents the shifted range.

operator- function (Range::operator-)

constexpr Range operator-(T b) const noexcept

Shifts the range by subtracting a value from both the minimum and maximum.
Param b The value to subtract from both min and max.
Returns A new Range that represents the shifted range.

operator+= function (Range::operator+=)

constexpr Range &operator+=(T b) noexcept

Increments both the minimum and maximum values of the range.
Param b The value to add to both min and max.
Returns A reference to the modified Range.

operator-= function (Range::operator-=)

constexpr Range &operator-=(T b) noexcept

Decrements both the minimum and maximum values of the range.
Param b The value to subtract from both min and max.
Returns A reference to the modified Range.

operator== function (Range::operator==)

constexpr bool
operator==(const Range &b) const noexcept = default

Checks for equality between this range and another range.
Param b The range to compare with.
Returns true if both min and max values are equal; otherwise, false.

RangeIterator class (Range::RangeIterator)

RangeIterator

A nested iterator class for the Range.

begin function (Range::begin)

RangeIterator begin() const noexcept
  requires(!inclusive)

Returns an iterator to the beginning of the range.
Returns An iterator pointing to the minimum value.

end function (Range::end)

RangeIterator end() const noexcept
  requires(!inclusive)

Returns an iterator to the end of the range.

The end iterator points just past the maximum value.
Returns An iterator pointing just past the maximum value.


Empty class

Empty

LambdaArgument class (InternalHelper::LambdaArgument)

template <typename F> LambdaArgument

template <typename R, typename A> LambdaArgument

template <typename R, typename A> LambdaArgument

RefAdapter class

template <typename Fn, typename Arg, typename Ret>
RefAdapter

MemberFieldTraits class

template <typename Func> MemberFieldTraits

template <typename Class_, typename Type_> MemberFieldTraits

TypeID class

template <typename T> TypeID

TypeIDs class

template <typename... T> TypeIDs

PassThrough class

PassThrough

Overload class

template <typename... Ts> Overload

range_format_kind class (fmt::range_format_kind)

template <typename T, bool inclusive, typename Char>
range_format_kind

Auto-generated from sources, Revision , https://github.com/brisklib/brisk/blob//include/brisk/