Removes a character from a literal string.
More...
#include <literal_string_util.hpp>
|
static constexpr auto | value |
|
template<
literal_string S, char C>
struct essence::meta::remove_char< S, C >
Removes a character from a literal string.
- Template Parameters
-
S | The literal string. |
C | The character. |
◆ value
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: