CommonLib
Loading...
Searching...
No Matches
string_expr.h File Reference
#include <concepts>
#include <fstream>
#include <ranges>
#include <sstream>
#include <string>
#include <tuple>
#include <type_traits>
#include "container_expr.h"
#include "string_expr.inl"

Go to the source code of this file.

Classes

struct  hedgedev::csl::ut::expr::get_char_type< T >
struct  hedgedev::csl::ut::expr::get_char_type< T >
struct  hedgedev::csl::ut::expr::is_basic_string< T >
struct  hedgedev::csl::ut::expr::is_basic_string< std::basic_string< T_char, T_traits, T_alloc > >
struct  hedgedev::csl::ut::expr::is_basic_string_view< T >
struct  hedgedev::csl::ut::expr::is_basic_string_view< std::basic_string_view< T_char, T_traits > >

Namespaces

namespace  hedgedev
namespace  hedgedev::csl
namespace  hedgedev::csl::ut
namespace  hedgedev::csl::ut::expr

Concepts

concept  hedgedev::csl::ut::expr::raw_string_c
concept  hedgedev::csl::ut::expr::raw_string_w
concept  hedgedev::csl::ut::expr::raw_string_u8
concept  hedgedev::csl::ut::expr::raw_string_u16
concept  hedgedev::csl::ut::expr::raw_string_u32
concept  hedgedev::csl::ut::expr::basic_string
concept  hedgedev::csl::ut::expr::basic_string_view
concept  hedgedev::csl::ut::expr::any_raw_string
concept  hedgedev::csl::ut::expr::any_string
concept  hedgedev::csl::ut::expr::any_string_w
concept  hedgedev::csl::ut::expr::any_string_u8
concept  hedgedev::csl::ut::expr::any_string_u16
concept  hedgedev::csl::ut::expr::any_string_u32

Typedefs

template<typename T>
using hedgedev::csl::ut::expr::get_char_type_t = typename get_char_type<std::remove_cvref_t<T>>::type
template<any_string T>
using hedgedev::csl::ut::expr::inferred_string_t = std::basic_string<get_char_type_t<T>>
template<any_string T>
using hedgedev::csl::ut::expr::inferred_string_view_t = std::basic_string_view<get_char_type_t<T>>
template<any_string T>
using hedgedev::csl::ut::expr::inferred_stringstream_t = std::basic_stringstream<get_char_type_t<T>>
template<any_string T>
using hedgedev::csl::ut::expr::inferred_fstream_t = std::basic_fstream<std::conditional_t<std::is_same_v<get_char_type_t<T>, char8_t>, char, get_char_type_t<T>>>
template<any_string... T_args>
using hedgedev::csl::ut::expr::precedent_string_t = std::tuple_element_t<get_string_type_precedence<T_args...>(), std::tuple<T_args...>>
template<any_string... T_args>
using hedgedev::csl::ut::expr::pi_string_t = inferred_string_t<precedent_string_t<T_args...>>
template<any_string... T_args>
using hedgedev::csl::ut::expr::pi_string_view_t = inferred_string_view_t<precedent_string_t<T_args...>>
template<any_string... T_args>
using hedgedev::csl::ut::expr::pi_stringstream_t = inferred_stringstream_t<precedent_string_t<T_args...>>

Functions

template<any_string T_result, any_string T_str>
constexpr T_result hedgedev::csl::ut::expr::create_inferred_string (const T_str &in_str)
template<any_string... T_args>
constexpr size_t hedgedev::csl::ut::expr::get_string_type_precedence ()

Variables

template<any_string T_left, any_string T_right>
constexpr bool hedgedev::csl::ut::expr::is_same_underlying_char_type_v = std::is_same_v<get_char_type_t<T_left>, get_char_type_t<T_right>>