C++ Essence Library 0.1.0
A Utility Library for Modern C++ Programming
Loading...
Searching...
No Matches
essence::meta::remove_char< S, C > Struct Template Reference

Removes a character from a literal string. More...

#include <literal_string_util.hpp>

Static Public Attributes

static constexpr auto value
 

Detailed Description

template<literal_string S, char C>
struct essence::meta::remove_char< S, C >

Removes a character from a literal string.

Template Parameters
SThe literal string.
CThe character.

Member Data Documentation

◆ value

template<literal_string S, char C>
auto essence::meta::remove_char< S, C >::value
staticconstexpr
Initial value:
= [] {
struct removal_metadata {
decltype(S) result;
std::size_t actual_size;
};
constexpr auto metadata = [] {
auto result = S;
auto removal_end = std::remove(result.begin(), result.end(), C);
return removal_metadata{
.result = std::move(result),
.actual_size = static_cast<std::size_t>(removal_end - result.begin()),
};
}();
literal_string<metadata.actual_size> result;
std::copy(metadata.result.begin(), metadata.result.begin() + metadata.actual_size, result.begin());
return result;
}()

The documentation for this struct was generated from the following file: