Namespaces
Variants

std::text_encoding:: comp-name

From cppreference.net
static constexpr bool /*comp-name*/ ( std:: string_view a, std:: string_view b ) ;
(начиная с C++26)
( только для демонстрации* )

Сравнивает две строки a и b в обычной литеральной кодировке согласно правилам Unicode Charset Alias Matching .

Две строки считаются равными при сравнении слева направо после:

  • удаление всех не-буквенно-цифровых символов,
  • приведение всех букв к одному регистру, и
  • удаление любых изолированных последовательностей символов '0' , которые не следуют непосредственно за числовым префиксом. Числовой префикс состоит из ненулевой цифры ( '1' до '9' ), за которой может следовать один или более не-буквенно-цифровых символов.

Вот следующие примеры:

static_assert(/*comp-name*/("UTF-8", "utf8") == true);
static_assert(/*comp-name*/("u.t.f-008", "utf8") == true);
static_assert(/*comp-name*/("ISO-8859-1", "iso88591") == true);
static_assert(/*comp-name*/("ut8", "utf8") == false);
static_assert(/*comp-name*/("utf-80", "utf8") == false);

Параметры

a, b - строки для сравнения

Возвращаемое значение

true если две строки равны при сравнении, как описано выше; false в противном случае.