CommonLibSSE NG
SKSE::stl Namespace Reference

Namespaces

 nttp
 

Classes

class  enumeration
 
class  atomic_ref
 
struct  ssizeof
 

Typedefs

template<class CharT >
using basic_zstring = std::basic_string_view< CharT >
 
using zstring = basic_zstring< char >
 
using zwstring = basic_zstring< wchar_t >
 
template<class T , class = std::enable_if_t< std::is_pointer_v<T>>>
using owner = T
 
template<class T , class = std::enable_if_t< std::is_pointer_v<T>>>
using observer = T
 
template<class T , class = std::enable_if_t< std::is_pointer_v<T>>>
using not_null = T
 

Functions

template<class EF >
 requires (std::invocable< std::remove_reference_t< EF >>) class scope_exit
 
template<class EF >
 scope_exit (EF) -> scope_exit< EF >
 
template<class... Args>
 enumeration (Args...) -> enumeration< std::common_type_t< Args... >, std::underlying_type_t< std::common_type_t< Args... >>>
 
template<class E , class U >
constexpr auto operator~ (enumeration< E, U > a_enum) noexcept -> enumeration< E, U >
 
 SKSE_MAKE_LOGICAL_OP (==, bool)
 
 SKSE_MAKE_LOGICAL_OP (<=>, std::strong_ordering)
 
 SKSE_MAKE_ARITHMETIC_OP (<<)
 
 SKSE_MAKE_ENUMERATION_OP (<<)
 
 SKSE_MAKE_ARITHMETIC_OP (>>)
 
 SKSE_MAKE_ENUMERATION_OP (>>)
 
 SKSE_MAKE_ENUMERATION_OP (|)
 
SKSE_MAKE_ENUMERATION_OP & SKSE_MAKE_ENUMERATION_OP (^);SKSE_MAKE_ENUMERATION_OP(+
 
 SKSE_MAKE_ENUMERATION_OP (-)
 
 SKSE_MAKE_INCREMENTER_OP (+)
 
 SKSE_MAKE_INCREMENTER_OP (-)
 
template<class T >
 atomic_ref (volatile T &) -> atomic_ref< T >
 
template<class T , class U >
auto adjust_pointer (U *a_ptr, std::ptrdiff_t a_adjust) noexcept
 
template<class T >
bool emplace_vtable (T *a_ptr)
 
template<class T >
void memzero (volatile T *a_ptr, std::size_t a_size=sizeof(T))
 
template<class... Args>
auto pun_bits (Args... a_args) requires(std
 
auto utf8_to_utf16 (std::string_view a_in) noexcept -> std::optional< std::wstring >
 
auto utf16_to_utf8 (std::wstring_view a_in) noexcept -> std::optional< std::string >
 
bool report_and_error (std::string_view a_msg, bool a_fail=true, std::source_location a_loc=std::source_location::current())
 
void report_and_fail (std::string_view a_msg, std::source_location a_loc=std::source_location::current())
 
template<class To , class From >
To unrestricted_cast (From a_from) noexcept
 

Variables

template<class T >
constexpr auto ssizeof_v = ssizeof<T>::value
 

Typedef Documentation

◆ basic_zstring

template<class CharT >
using SKSE::stl::basic_zstring = typedef std::basic_string_view<CharT>

◆ not_null

template<class T , class = std::enable_if_t< std::is_pointer_v<T>>>
using SKSE::stl::not_null = typedef T

◆ observer

template<class T , class = std::enable_if_t< std::is_pointer_v<T>>>
using SKSE::stl::observer = typedef T

◆ owner

template<class T , class = std::enable_if_t< std::is_pointer_v<T>>>
using SKSE::stl::owner = typedef T

◆ zstring

using SKSE::stl::zstring = typedef basic_zstring<char>

◆ zwstring

using SKSE::stl::zwstring = typedef basic_zstring<wchar_t>

Function Documentation

◆ adjust_pointer()

template<class T , class U >
auto SKSE::stl::adjust_pointer ( U *  a_ptr,
std::ptrdiff_t  a_adjust 
)
noexcept

◆ atomic_ref()

template<class T >
SKSE::stl::atomic_ref ( volatile T &  ) -> atomic_ref< T >

◆ emplace_vtable()

template<class T >
bool SKSE::stl::emplace_vtable ( T *  a_ptr)

◆ enumeration()

template<class... Args>
SKSE::stl::enumeration ( Args...  ) -> enumeration< std::common_type_t< Args... >, std::underlying_type_t< std::common_type_t< Args... >>>

◆ memzero()

template<class T >
void SKSE::stl::memzero ( volatile T *  a_ptr,
std::size_t  a_size = sizeof(T) 
)

◆ operator~()

template<class E , class U >
constexpr auto SKSE::stl::operator~ ( enumeration< E, U >  a_enum) -> enumeration<E, U>
constexprnoexcept

◆ pun_bits()

template<class... Args>
auto SKSE::stl::pun_bits ( Args...  a_args)
inline

◆ report_and_error()

bool SKSE::stl::report_and_error ( std::string_view  a_msg,
bool  a_fail = true,
std::source_location  a_loc = std::source_location::current() 
)
inline

◆ report_and_fail()

void SKSE::stl::report_and_fail ( std::string_view  a_msg,
std::source_location  a_loc = std::source_location::current() 
)
inline

◆ requires()

template<class EF >
SKSE::stl::requires ( std::invocable< std::remove_reference_t< EF >>  )

◆ scope_exit()

template<class EF >
SKSE::stl::scope_exit ( EF  ) -> scope_exit< EF >

◆ SKSE_MAKE_ARITHMETIC_OP() [1/2]

SKSE::stl::SKSE_MAKE_ARITHMETIC_OP ( <<  )

◆ SKSE_MAKE_ARITHMETIC_OP() [2/2]

SKSE::stl::SKSE_MAKE_ARITHMETIC_OP ( >>  )

◆ SKSE_MAKE_ENUMERATION_OP() [1/5]

SKSE::stl::SKSE_MAKE_ENUMERATION_OP ( )

◆ SKSE_MAKE_ENUMERATION_OP() [2/5]

SKSE::stl::SKSE_MAKE_ENUMERATION_OP ( <<  )

◆ SKSE_MAKE_ENUMERATION_OP() [3/5]

SKSE::stl::SKSE_MAKE_ENUMERATION_OP ( >>  )

◆ SKSE_MAKE_ENUMERATION_OP() [4/5]

SKSE_MAKE_ENUMERATION_OP& SKSE::stl::SKSE_MAKE_ENUMERATION_OP ( )

◆ SKSE_MAKE_ENUMERATION_OP() [5/5]

SKSE::stl::SKSE_MAKE_ENUMERATION_OP ( )

◆ SKSE_MAKE_INCREMENTER_OP() [1/2]

SKSE::stl::SKSE_MAKE_INCREMENTER_OP ( )

◆ SKSE_MAKE_INCREMENTER_OP() [2/2]

SKSE::stl::SKSE_MAKE_INCREMENTER_OP ( )

◆ SKSE_MAKE_LOGICAL_OP() [1/2]

SKSE::stl::SKSE_MAKE_LOGICAL_OP ( <=  ,
std::strong_ordering   
)

◆ SKSE_MAKE_LOGICAL_OP() [2/2]

SKSE::stl::SKSE_MAKE_LOGICAL_OP ( bool  )

◆ unrestricted_cast()

template<class To , class From >
To SKSE::stl::unrestricted_cast ( From  a_from)
noexcept

◆ utf16_to_utf8()

auto SKSE::stl::utf16_to_utf8 ( std::wstring_view  a_in) -> std::optional<std::string>
inlinenoexcept

◆ utf8_to_utf16()

auto SKSE::stl::utf8_to_utf16 ( std::string_view  a_in) -> std::optional<std::wstring>
inlinenoexcept

Variable Documentation

◆ ssizeof_v

template<class T >
constexpr auto SKSE::stl::ssizeof_v = ssizeof<T>::value
inlineconstexpr