Skip to content

Internal module


<deduction guide for FixedString> function

template <size_t N>
FixedString(const char (&)[N])->FixedString<N - 1>

Deduction guide for creating FixedString from string literals.

This deduction guide allows the compiler to automatically deduce the template parameter N when initializing a FixedString with a string literal.
Param str A string literal.


COMInitializer class

COMInitializer

A no-op COMInitializer for non-Windows platforms.

This struct is defined to provide a consistent interface across platforms, but does not perform any actions on non-Windows systems.


FixedString class

template <size_t N> FixedString

A compile-time fixed-size string class.

This class provides a way to work with fixed-size strings during compile-time. The string's size is determined at compile time, and it is stored in an array of characters.
Template param N The size of the string (not including the null terminator).

FixedString<N> function

constexpr FixedString(const char (&str)[N + 1])

Constructs a FixedString from a string literal.

This constructor takes a string literal and initializes the FixedString with its content. The size of the string must match the template parameter N.
Param str A string literal to initialize the FixedString.

constexpr explicit FixedString(const char *str, int dummy)

Constructs a FixedString from a pointer to a character array.

This constructor is explicit and allows initialization from a character pointer. The size of the string must still match the template parameter N.
Param str A pointer to a null-terminated character array.
Param dummy A dummy parameter to disambiguate this constructor.

string function

constexpr std::string_view string() const

Returns a string view of the FixedString content.

This function provides a view of the string content as a std::string_view.
Returns A std::string_view representing the string content.

content variable

std::array<char, N> content

The underlying storage for the string content.

operator<=> function

auto operator<=>(const FixedString &) const noexcept =
    default

Compares two FixedStrings for ordering.

This operator is defaulted to provide a three-way comparison based on the lexicographical order of the string contents.
Param other The other FixedString to compare against.
Returns A comparison result.


OpenTypeFeature enum

enum class OpenTypeFeature : uint8_t

OpenTypeFeatureEnumerates various OpenType font features.
Note Use openTypeFeatures to map to uint32_t.

aalt enumerator

*/

abvf enumerator

*/

abvm enumerator

*/

abvs enumerator

*/

afrc enumerator

*/

akhn enumerator

*/

blwf enumerator

*/

blwm enumerator

*/

blws enumerator

*/

calt enumerator

*/

case_ enumerator

*/

ccmp enumerator

*/

cfar enumerator

*/

chws enumerator

*/

cjct enumerator

*/

clig enumerator

*/

cpct enumerator

*/

cpsp enumerator

*/

cswh enumerator

*/

curs enumerator

*/

cv01 enumerator

*/

cv02 enumerator

*/

c2pc enumerator

*/

c2sc enumerator

*/

dist enumerator

*/

dlig enumerator

*/

dnom enumerator

*/

dtls enumerator

*/

expt enumerator

*/

falt enumerator

*/

fin2 enumerator

*/

fin3 enumerator

*/

fina enumerator

*/

flac enumerator

*/

frac enumerator

*/

fwid enumerator

*/

half enumerator

*/

haln enumerator

*/

halt enumerator

*/

hist enumerator

*/

hkna enumerator

*/

hlig enumerator

*/

hngl enumerator

*/

hojo enumerator

*/

hwid enumerator

*/

init enumerator

*/

isol enumerator

*/

ital enumerator

*/

jalt enumerator

*/

jp78 enumerator

*/

jp83 enumerator

*/

jp90 enumerator

*/

jp04 enumerator

*/

kern enumerator

*/

lfbd enumerator

*/

liga enumerator

*/

ljmo enumerator

*/

lnum enumerator

*/

locl enumerator

*/

ltra enumerator

*/

ltrm enumerator

*/

mark enumerator

*/

med2 enumerator

*/

medi enumerator

*/

mgrk enumerator

*/

mkmk enumerator

*/

mset enumerator

*/

nalt enumerator

*/

nlck enumerator

*/

nukt enumerator

*/

numr enumerator

*/

onum enumerator

*/

opbd enumerator

*/

ordn enumerator

*/

ornm enumerator

*/

palt enumerator

*/

pcap enumerator

*/

pkna enumerator

*/

pnum enumerator

*/

pref enumerator

*/

pres enumerator

*/

pstf enumerator

*/

psts enumerator

*/

pwid enumerator

*/

qwid enumerator

*/

rand enumerator

*/

rclt enumerator

*/

rkrf enumerator

*/

rlig enumerator

*/

rphf enumerator

*/

rtbd enumerator

*/

rtla enumerator

*/

rtlm enumerator

*/

ruby enumerator

*/

rvrn enumerator

*/

salt enumerator

*/

sinf enumerator

*/

size enumerator

*/

smcp enumerator

*/

smpl enumerator

*/

ss01 enumerator

*/

ss02 enumerator

*/

ss03 enumerator

*/

ssty enumerator

*/

stch enumerator

*/

subs enumerator

*/

sups enumerator

*/

swsh enumerator

*/

titl enumerator

*/

tjmo enumerator

*/

tnam enumerator

*/

tnum enumerator

*/

trad enumerator

*/

twid enumerator

*/

unic enumerator

*/

valt enumerator

*/

vatu enumerator

*/

vchw enumerator

*/

vert enumerator

*/

vhal enumerator

*/

vjmo enumerator

*/

vkna enumerator

*/

vkrn enumerator

*/

vpal enumerator

*/

vrt2 enumerator

*/

vrtr enumerator

*/

zero enumerator

*/


constant typedef

template <typename T, T N>
constant = std::integral_constant<T, N>

A template alias for std::integral_constant.

This alias allows defining compile-time constants of any type.
Template param T The type of the constant.
Template param N The value of the constant.


constant = std::integral_constant<T, N>

A template alias for std::integral_constant.

This alias allows defining compile-time constants of any type.
Template param T The type of the constant.
Template param N The value of the constant.


constants typedef

template <typename T, T... N>
constants = std::integer_sequence<T, N...>

A template alias for std::integer_sequence.

This alias allows the creation of sequences of compile-time integers.
Template param T The type of the sequence elements.
Template param N The values of the sequence elements.


constants = std::integer_sequence<T, N...>

A template alias for std::integer_sequence.

This alias allows the creation of sequences of compile-time integers.
Template param T The type of the sequence elements.
Template param N The values of the sequence elements.


find_integral_type function

template <std::integral auto Min, std::integral auto Max>
constexpr auto find_integral_type()

Finds the appropriate integral type based on the given range.

This helper function determines the smallest integral type that can represent the range [Min, Max].
Template param Min The minimum value of the range.
Template param Max The maximum value of the range.
Returns The integral type that can represent the specified range.


template <auto Min, auto Max>
find_integral_type =
    decltype(Internal::find_integral_type<Min, Max>)

Finds the integral type that can represent the given range.

This alias evaluates to the integral type that can safely represent the values in the range [Min, Max].
Template param Min The minimum value of the range.
Template param Max The maximum value of the range.


find_integral_type =
    decltype(Internal::find_integral_type<Min, Max>)

Finds the integral type that can represent the given range.

This alias evaluates to the integral type that can safely represent the values in the range [Min, Max].
Template param Min The minimum value of the range.
Template param Max The maximum value of the range.


fixed class

template <int Integer, int Fractional> fixed

Signed Fixed-Point number


generate function

template <typename Functor>
inline auto generate(size_t count, Functor functor)
    -> std::vector<decltype(functor())>

Generates a vector by applying a functor a specified number of times.

This function creates a vector of a given size and fills it with values generated by invoking the provided functor.
Template param Functor The type of the functor used for generating values.
Param count The number of elements to generate.
Param functor The functor that produces the values.
Returns A vector containing the generated values.


inline_vector class

template <typename T, size_t N> inline_vector

A resizeable vector-like container with fixed capacity.

The inline_vector class is a container that stores a fixed number of elements of type T. It provides similar functionalities to a standard vector, but it is designed to operate with a fixed capacity determined at compile time.

The class enforces that the type T is trivially copyable, movable, and destructible, and ensures that the size N is within valid bounds. It supports basic operations such as element access, size retrieval, and iteration.
Template param T The type of the elements stored in the vector.
Template param N The maximum number of elements that the vector can hold.
Note The class is designed to be efficient in terms of memory and performance by storing elements in a contiguous array.
Exceptions If operations exceed the defined bounds (e.g., accessing an index out of range, or initializing with more elements than allowed).


map function

template <typename ValueType, typename Alloc,
          typename Functor>
inline auto
map(const std::vector<ValueType, Alloc> &container,
    Functor &&functor)
    -> std::vector<
        decltype(functor(std::declval<ValueType>()))>

Transforms the elements of a vector using a functor.

This function applies the provided functor to each element of the input vector and returns a new vector containing the transformed values.
Template param ValueType The type of the elements in the input vector.
Template param Alloc The allocator type used by the input vector.
Template param Functor The type of the functor used for transformation.
Param container The input vector to transform.
Param functor The functor to apply to each element of the vector.
Returns A vector containing the transformed values.


operator% function

template <typename T, T... x, T y>
constexpr auto operator%(constants<T, x...>,
                         constant<T, y>) noexcept
    -> constants<T, (x % y)...>

Computes the modulus of a sequence of constants by a constant.

This operator overload allows computing the modulus of a sequence of constants by a constant.
Param lhs A sequence of constants.
Param rhs A constant to compute the modulus with.
Returns A new sequence of constants resulting from the modulus operation.


template <typename T, T x, T... y>
constexpr auto operator%(constant<T, x>,
                         constants<T, y...>) noexcept
    -> constants<T, (x % y)...>

Computes the modulus of a constant by a sequence of constants (reverse order).

This operator overload allows computing the modulus of a constant by a sequence of constants with the constant on the left-hand side.
Param lhs A constant to compute the modulus of.
Param rhs A sequence of constants.
Returns A new sequence of constants resulting from the modulus operation.


operator+ function

template <typename T, T... x, T y>
constexpr auto operator+(constants<T, x...>,
                         constant<T, y>) noexcept
    -> constants<T, (x + y)...>

Adds a constant to a sequence of constants.

This operator overload allows the addition of a constant to a sequence of constants.
Param lhs A sequence of constants.
Param rhs A constant to add.
Returns A new sequence of constants resulting from the addition.


template <typename T, T x, T... y>
constexpr auto operator+(constant<T, x>,
                         constants<T, y...>) noexcept
    -> constants<T, (x + y)...>

Adds a constant to a sequence of constants (reverse order).

This operator overload allows the addition of a constant to a sequence of constants with the constant on the left-hand side.
Param lhs A constant to add.
Param rhs A sequence of constants.
Returns A new sequence of constants resulting from the addition.


operator- function

template <typename T, T... x, T y>
constexpr auto operator-(constants<T, x...>,
                         constant<T, y>) noexcept
    -> constants<T, (x - y)...>

Subtracts a constant from a sequence of constants.

This operator overload allows the subtraction of a constant from a sequence of constants.
Param lhs A sequence of constants.
Param rhs A constant to subtract.
Returns A new sequence of constants resulting from the subtraction.


template <typename T, T x, T... y>
constexpr auto operator-(constant<T, x>,
                         constants<T, y...>) noexcept
    -> constants<T, (x - y)...>

Subtracts a sequence of constants from a constant (reverse order).

This operator overload allows the subtraction of a sequence of constants from a constant with the constant on the left-hand side.
Param lhs A constant to subtract from.
Param rhs A sequence of constants.
Returns A new sequence of constants resulting from the subtraction.


operator^ function

template <typename T, T... x, T y>
constexpr auto operator^(constants<T, x...>,
                         constant<T, y>) noexcept
    -> constants<T, (x ^ y)...>

Bitwise XORs a constant with a sequence of constants.

This operator overload allows bitwise XOR of a constant with a sequence of constants.
Param lhs A sequence of constants.
Param rhs A constant to XOR.
Returns A new sequence of constants resulting from the bitwise XOR.


template <typename T, T x, T... y>
constexpr auto operator^(constant<T, x>,
                         constants<T, y...>) noexcept
    -> constants<T, (x ^ y)...>

Bitwise XORs a sequence of constants with a constant (reverse order).

This operator overload allows bitwise XOR of a sequence of constants with a constant with the constant on the left-hand side.
Param lhs A constant to XOR with.
Param rhs A sequence of constants.
Returns A new sequence of constants resulting from the bitwise XOR.


sequence typedef

template <typename T, size_t N>
sequence = std::make_integer_sequence<T, N>

A template alias for creating an integer sequence.

This alias uses std::make_integer_sequence to create a sequence of integers.
Template param T The type of the sequence elements.
Template param N The number of elements in the sequence.


sequence = std::make_integer_sequence<T, N>

A template alias for creating an integer sequence.

This alias uses std::make_integer_sequence to create a sequence of integers.
Template param T The type of the sequence elements.
Template param N The number of elements in the sequence.


throwException function

template <typename ExceptionType>
[[noreturn]] void throwException(ExceptionType &&exc)

Throws an exception of the specified type or terminates the program.

This function logs the exception and either throws it if exceptions are enabled, or calls std::terminate if exceptions are disabled.
Template param ExceptionType The type of the exception to be thrown, which must be derived from std::exception.
Param exc The exception object to throw.
Exceptions The specified exception type.
Note This function will not return; it either throws the exception or terminates the program.


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