xentara-utils v2.0.4
The Xentara Utility Library
Loading...
Searching...
No Matches
xentara::utils::string::operators Namespace Reference

Inline namespace containg operators for special custom string types. More...

Functions

template<SpecialStringType String>
constexpr auto operator== (const String &lhs, std::basic_string_view< typename String::value_type, typename String::traits_type > rhs) noexcept -> bool
 Comparison operator between a special string type and a string view.
 
template<SpecialStringType String>
constexpr auto operator<=> (const String &lhs, std::basic_string_view< typename String::value_type, typename String::traits_type > rhs) noexcept -> std::strong_ordering
 Three-way comparison operator between a special string type and a string view.
 
template<SpecialStringType Lhs, SpecialStringType Rhs>
requires std::same_as<typename Lhs::traits_type, typename Rhs::traits_type>
constexpr auto operator== (const Lhs &lhs, const Rhs &rhs) noexcept -> bool
 Comparison operator between two special string types.
 
template<SpecialStringType Lhs, SpecialStringType Rhs>
requires std::same_as<typename Lhs::traits_type, typename Rhs::traits_type>
constexpr auto operator<=> (const Lhs &lhs, const Rhs &rhs) noexcept -> std::strong_ordering
 Three-way comparison operator between two special string types.
 
template<SpecialStringType String, typename Allocator >
constexpr auto operator+ (const String &lhs, const std::basic_string< typename String::value_type, typename String::traits_type, Allocator > &rhs) -> std::basic_string< typename String::value_type, typename String::traits_type, Allocator >
 Concatenation operator between a special string type and an std::basic_string.
 
template<SpecialStringType String, typename Allocator >
constexpr auto operator+ (const String &lhs, std::basic_string< typename String::value_type, typename String::traits_type, Allocator > &&rhs) -> std::basic_string< typename String::value_type, typename String::traits_type, Allocator >
 Concatenation operator between a special string type and an std::basic_string rvalue reference.
 
template<SpecialStringType String>
constexpr auto operator+ (const String &lhs, const typename String::value_type *rhs) -> std::basic_string< typename String::value_type, typename String::traits_type >
 Concatenation operator between a special string type and a null-terminated string.
 
template<SpecialStringType String>
constexpr auto operator+ (const String &lhs, typename String::value_type rhs) -> std::basic_string< typename String::value_type, typename String::traits_type >
 Concatenation operator between a special string type and a single character.
 
template<SpecialStringType String, typename Allocator >
constexpr auto operator+ (const std::basic_string< typename String::value_type, typename String::traits_type, Allocator > &lhs, const String &rhs) -> std::basic_string< typename String::value_type, typename String::traits_type, Allocator >
 Concatenation operator between and an std::basic_string and a special string.
 
template<SpecialStringType String, typename Allocator >
constexpr auto operator+ (std::basic_string< typename String::value_type, typename String::traits_type, Allocator > &&lhs, const String &rhs) -> std::basic_string< typename String::value_type, typename String::traits_type, Allocator >
 Concatenation operator between an std::basic_string rvalue reference and a special string.
 
template<SpecialStringType String>
constexpr auto operator+ (const typename String::value_type *lhs, const String &rhs) -> std::basic_string< typename String::value_type, typename String::traits_type >
 Concatenation operator between a null-terminated string and a special string.
 
template<SpecialStringType String>
constexpr auto operator+ (typename String::value_type lhs, const String &rhs) -> std::basic_string< typename String::value_type, typename String::traits_type >
 Concatenation operator between a single character and a special string.
 
template<SpecialStringType Lhs, SpecialStringType Rhs>
requires std::same_as<typename Lhs::traits_type, typename Rhs::traits_type>
constexpr auto operator+ (const Lhs &lhs, const Rhs &rhs) -> std::basic_string< typename Lhs::value_type, typename Lhs::traits_type >
 Concatenation operator between two special string types.
 

Detailed Description

Inline namespace containg operators for special custom string types.

This inline namespace contains operators for the specialialized string classes defined in the xentara::utils::string and xentara::utils::tparam namespaces.

Function Documentation

◆ operator+() [1/9]

template<SpecialStringType Lhs, SpecialStringType Rhs>
requires std::same_as<typename Lhs::traits_type, typename Rhs::traits_type>
constexpr auto xentara::utils::string::operators::operator+ ( const Lhs &  lhs,
const Rhs &  rhs 
) -> std::basic_string<typename Lhs::value_type, typename Lhs::traits_type>
constexpr

Concatenation operator between two special string types.

◆ operator+() [2/9]

template<SpecialStringType String, typename Allocator >
constexpr auto xentara::utils::string::operators::operator+ ( const std::basic_string< typename String::value_type, typename String::traits_type, Allocator > &  lhs,
const String &  rhs 
) -> std::basic_string<typename String::value_type, typename String::traits_type, Allocator>
constexpr

Concatenation operator between and an std::basic_string and a special string.

◆ operator+() [3/9]

template<SpecialStringType String, typename Allocator >
constexpr auto xentara::utils::string::operators::operator+ ( const String &  lhs,
const std::basic_string< typename String::value_type, typename String::traits_type, Allocator > &  rhs 
) -> std::basic_string<typename String::value_type, typename String::traits_type, Allocator>
constexpr

Concatenation operator between a special string type and an std::basic_string.

◆ operator+() [4/9]

template<SpecialStringType String>
constexpr auto xentara::utils::string::operators::operator+ ( const String &  lhs,
const typename String::value_type *  rhs 
) -> std::basic_string<typename String::value_type, typename String::traits_type>
constexpr

Concatenation operator between a special string type and a null-terminated string.

◆ operator+() [5/9]

template<SpecialStringType String, typename Allocator >
constexpr auto xentara::utils::string::operators::operator+ ( const String &  lhs,
std::basic_string< typename String::value_type, typename String::traits_type, Allocator > &&  rhs 
) -> std::basic_string<typename String::value_type, typename String::traits_type, Allocator>
constexpr

Concatenation operator between a special string type and an std::basic_string rvalue reference.

◆ operator+() [6/9]

template<SpecialStringType String>
constexpr auto xentara::utils::string::operators::operator+ ( const String &  lhs,
typename String::value_type  rhs 
) -> std::basic_string<typename String::value_type, typename String::traits_type>
constexpr

Concatenation operator between a special string type and a single character.

◆ operator+() [7/9]

template<SpecialStringType String>
constexpr auto xentara::utils::string::operators::operator+ ( const typename String::value_type *  lhs,
const String &  rhs 
) -> std::basic_string<typename String::value_type, typename String::traits_type>
constexpr

Concatenation operator between a null-terminated string and a special string.

◆ operator+() [8/9]

template<SpecialStringType String, typename Allocator >
constexpr auto xentara::utils::string::operators::operator+ ( std::basic_string< typename String::value_type, typename String::traits_type, Allocator > &&  lhs,
const String &  rhs 
) -> std::basic_string<typename String::value_type, typename String::traits_type, Allocator>
constexpr

Concatenation operator between an std::basic_string rvalue reference and a special string.

◆ operator+() [9/9]

template<SpecialStringType String>
constexpr auto xentara::utils::string::operators::operator+ ( typename String::value_type  lhs,
const String &  rhs 
) -> std::basic_string<typename String::value_type, typename String::traits_type>
constexpr

Concatenation operator between a single character and a special string.

◆ operator<=>() [1/2]

template<SpecialStringType Lhs, SpecialStringType Rhs>
requires std::same_as<typename Lhs::traits_type, typename Rhs::traits_type>
constexpr auto xentara::utils::string::operators::operator<=> ( const Lhs &  lhs,
const Rhs &  rhs 
) -> std::strong_ordering
constexprnoexcept

Three-way comparison operator between two special string types.

Note
This operator is necessary to resolve ambiguities in the comparison operators

◆ operator<=>() [2/2]

template<SpecialStringType String>
constexpr auto xentara::utils::string::operators::operator<=> ( const String &  lhs,
std::basic_string_view< typename String::value_type, typename String::traits_type >  rhs 
) -> std::strong_ordering
constexprnoexcept

Three-way comparison operator between a special string type and a string view.

◆ operator==() [1/2]

template<SpecialStringType Lhs, SpecialStringType Rhs>
requires std::same_as<typename Lhs::traits_type, typename Rhs::traits_type>
constexpr auto xentara::utils::string::operators::operator== ( const Lhs &  lhs,
const Rhs &  rhs 
) -> bool
constexprnoexcept

Comparison operator between two special string types.

Note
This operator is necessary to resolve ambiguities in the comparison operators

◆ operator==() [2/2]

template<SpecialStringType String>
constexpr auto xentara::utils::string::operators::operator== ( const String &  lhs,
std::basic_string_view< typename String::value_type, typename String::traits_type >  rhs 
) -> bool
constexprnoexcept

Comparison operator between a special string type and a string view.