структура winrt::hstring (C++/WinRT)
Последовательная коллекция символов Юникода UTF-16, представляющая текстовую строку. Дополнительные примеры и сведения о winrt::hstringсм. в обработке строк вC++/WinRT.
Тип winrt::hstring инкапсулирует HSTRING за интерфейсом, похожим на std::wstring.
HSTRING — это дескриптор строки среды выполнения Windows. Сведения о настройке
Синтаксис
struct hstring
Требования
минимальный поддерживаемый пакет SDK: windows SDK версии 10.0.17134.0 (Windows 10 версии 1803)
пространство имен : winrt
заголовок : %WindowsSdkDir%Include<WindowsTargetPlatformVersion>\cppwinrt\winrt\base.h (включен по умолчанию)
Псевдонимы типов элементов
Имя псевдонима | Тип |
---|---|
hstring::value_type | Синоним wchar_t. |
hstring::size_type | Синоним uint32_t. |
hstring::const_reference | Синоним hstring::value_type const&. |
hstring::const_pointer | Синоним hstring::value_type const*. |
hstring::const_iterator | Синоним hstring::const_pointer. |
hstring::const_reverse_iterator | Синоним std::reverse_iterator<hstring::const_iterator>. |
Конструкторы
Конструктор | Описание |
---|---|
конструктор hstring::hstring | Инициализирует новый экземпляр структуры hstring с копией входных строковых данных. |
Функции-члены
Функция | Описание |
---|---|
hstring::back function | Возвращает ссылку на последний символ в объекте hstring. |
hstring::begin function | Возвращает константный итератор первому символу в объекте hstring. |
функция hstring::c_str | Возвращает указатель на базовую строку стиля C, завершаемую значением NULL, символов в объекте hstring; копирование не производится. |
hstring::cbegin function | Возвращает константный итератор первому символу в объекте hstring. |
hstring::cend function | Возвращает константный итератор к одному за пределами (один за последним символом) объекта hstring. |
hstring::clear function | Делает объект hstring пустым. |
функция hstring::crbegin | Возвращает обратный итератор констант в один за пределами (один за последним символом) объекта hstring. |
hstring::crend function | Возвращает обратный итератор констант к первому символу в объекте hstring. |
hstring::d ata function | Возвращает строку, завершающуюся значением NULL, версию символов в объекте hstring. |
hstring::empty function | Возвращает значение, указывающее, является ли объект hstring пустым. |
hstring::end function | Возвращает константный итератор к одному за пределами (один за последним символом) объекта hstring. |
hstring::front function | Возвращает ссылку на первый символ в объекте hstring. |
функция hstring::rbegin | Возвращает обратный итератор констант в один за пределами (один за последним символом) объекта hstring. |
функция hstring::rend | Возвращает обратный итератор констант к первому символу в объекте hstring. |
функция hstring::size | Возвращает количество символов в объекте hstring. |
Операторы-члены
Оператор | Описание |
---|---|
hstring::operator std::wstring_view | Преобразует объект hstring |
hstring::operator[] (оператор subscript)) | Возвращает ссылку на символ в указанной позиции в объекте hstring. |
hstring::operator= (оператор назначения) | Назначает значение объекту hstring. |
Бесплатные функции
Функция | Описание |
---|---|
attach_abi функции | Присоединяет объект |
функция copy_from_abi | Копирует в объект hstring из дескриптора в строку среды выполнения Windows. Очищает hstring, копирует параметр и начинает управлять дескриптором. |
copy_to_abi функции | Копирует в дескриптор в строку среды выполнения Windows из объекта hstring. |
detach_abi функции | Отсоединяет объект hstring от его дескриптора, возможно, чтобы вернуть его вызывающему объекту. |
функция to_hstring | Преобразует входное значение в winrt::hstring, содержащую строковое представление значения. |
Бесплатные операторы
Оператор | Описание |
---|---|
оператор!= (оператор неравенства) | Возвращает значение, указывающее, не совпадают ли два параметра друг с другом. |
оператора |
Возвращает новый объект hstring, полученный из объединения двух параметров. |
оператор< (оператор меньше, чем оператор) | Возвращает значение, указывающее, меньше ли первый параметр, чем второй параметр. |
оператор <= (оператор меньше или равно) | Возвращает значение, указывающее, меньше ли первый параметр или равен второму параметру. |
оператор == (оператор равенства) | Возвращает значение, указывающее, равны ли два параметра друг другу. |
оператор> (оператор больше) | Возвращает значение, указывающее, больше ли первый параметр, чем второй параметр. |
оператор >= (оператор больше или равно) | Возвращает значение, указывающее, больше ли первый параметр или равен второму параметру. |
Итераторы
hstring — это диапазон, и этот диапазон определяется hstring::begin и hstring::end члены, каждый из которых возвращает итератор константа (как и hstring::cbegin и hstring::cend). Из-за этого можно перечислить символы в объекте hstring с оператором for
диапазона или с помощью функции шаблона std::for_each.
#include <iostream>
using namespace winrt;
...
void Iterators(hstring const& theHstring)
{
for (auto const& element : theHstring)
{
std::wcout << element;
}
std::for_each(theHstring.cbegin(), theHstring.cend(), [](T const& element) { std::wcout << element; });
}
конструктор hstring::hstring
Инициализирует новый экземпляр структуры hstring с копией входных строковых данных.
Синтаксис
hstring() noexcept;
hstring(winrt::hstring const& h);
explicit hstring(std::wstring_view const& v);
hstring(wchar_t const* c);
hstring(wchar_t const* c, uint32_t s);
Параметры
v
значение std::wstring_view, которое инициализирует объект hstring.
s
Число, указывающее фиксированный размер объекта hstring.
Пример
using namespace winrt;
...
void Constructors(
hstring const& theHstring,
std::wstring_view const& theWstringView,
wchar_t const* wideLiteral,
std::wstring const& wideString)
{
// hstring() noexcept
hstring fromDefault{};
// hstring(hstring const& h)
hstring fromHstring{ theHstring };
// explicit hstring(std::wstring_view const& value)
hstring fromWstringView{ theWstringView };
// hstring(wchar_t const* value)
hstring fromWideLiteral{ wideLiteral };
hstring fromWideString{ wideString.c_str() };
// hstring(wchar_t const* value, uint32_t size)
hstring fromWideLiteralWithSize{ wideLiteral, 256 };
hstring fromWideStringWithSize{ wideString.c_str(), 256 };
}
функция hstring::back
Возвращает ссылку на последний символ в объекте hstring.
Синтаксис
wchar_t const& back() const noexcept;
Возвращаемое значение
Ссылка на последний символ в объекте hstring.
функция hstring::begin
Возвращает константный итератор первому символу в объекте hstring. См. итераторов.
Синтаксис
wchar_t const* begin() const noexcept;
Возвращаемое значение
Константный итератор к первому символу в объекте hstring.
функция hstring::c_str
Возвращает указатель на базовую строку стиля C, завершаемую значением NULL, символов в объекте hstring; копирование не производится.
Синтаксис
wchar_t const* c_str() const noexcept;
Возвращаемое значение
Указатель на базовую строку стиля C, завершаемую null, символов в объекте hstring; копирование не производится.
Пример
#include <iostream>
using namespace winrt;
...
void PrintHstring(hstring const& theHstring)
{
// You can get a standard wide string from an hstring.
std::wcout << theHstring.c_str() << std::endl;
}
функция hstring::cbegin
Возвращает константный итератор первому символу в объекте hstring. См. итераторов.
Синтаксис
wchar_t const* cbegin() const noexcept;
Возвращаемое значение
Константный итератор к первому символу в объекте hstring.
функция hstring::cend
Возвращает константный итератор к одному за пределами (один за последним символом) объекта hstring. См. итераторов.
Синтаксис
wchar_t const* cend() const noexcept;
Возвращаемое значение
Константный итератор к одному за пределами (один за последним символом) объекта hstring.
функция hstring::clear
Делает объект hstring пустым.
Синтаксис
void clear() noexcept;
функция hstring::crbegin
Возвращает обратный итератор констант в один за пределами (один за последним символом) объекта hstring.
Синтаксис
std::reverse_iterator<wchar_t const*> crbegin() const noexcept;
Возвращаемое значение
Констант обратный итератор к одному за пределами (один за последним символом) объект hstring.
функция hstring::crend
Возвращает обратный итератор констант к первому символу в объекте hstring.
Синтаксис
std::reverse_iterator<wchar_t const*> crend() const noexcept;
Возвращаемое значение
Констант обратный итератор к первому символу в объекте hstring.
функция hstring::d ata
Возвращает строку, завершающуюся значением NULL, версию символов в объекте hstring.
Синтаксис
wchar_t const* data() const noexcept;
Возвращаемое значение
Строка, завершающаяся значением NULL, в стиле C, версия символов в объекте
Пример
#include <iostream>
using namespace winrt;
...
void PrintHstring(hstring const& theHstring)
{
// You can get a standard wide string from an hstring.
std::wcout << theHstring.data() << std::endl;
}
hstring::empty function
Возвращает значение, указывающее, является ли объект hstring пустым.
Синтаксис
bool empty() const noexcept;
Возвращаемое значение
true
, если объект hstring пуст, в противном случае false
.
hstring::end function
Возвращает константный итератор к одному за пределами (один за последним символом) объекта hstring. См. итераторов.
Синтаксис
wchar_t const* end() const noexcept;
Возвращаемое значение
Константный итератор к одному за пределами (один за последним символом) объекта hstring.
функция hstring::front
Возвращает ссылку на первый символ в объекте hstring.
Синтаксис
wchar_t const& front() const noexcept;
Возвращаемое значение
Ссылка на первый символ в объекте hstring.
hstring::operator std::wstring_view
Преобразует объект hstring
Синтаксис
operator std::wstring_view() const noexcept;
Возвращаемое значение
Объект hstring, преобразованный в std::wstring_view.
Пример
using namespace winrt;
...
Uri contosoUri{ L"https://www.contoso.com" };
Uri awUri{ L"https://www.adventure-works.com" };
// Uri::Domain() is of type hstring. But we can use hstring's conversion operator to std::wstring_view.
std::wstring domainWstring{ contosoUri.Domain() }; // L"contoso.com"
domainWstring = awUri.Domain(); // L"https://www.adventure-works.com"
hstring::operator[] (оператор subscript)
Возвращает ссылку на символ в указанной позиции в объекте hstring.
Синтаксис
wchar_t const& operator[](uint32_t pos) const noexcept;
Параметры
pos
положение символов на основе нуля или индекс.
Возвращаемое значение
Ссылка на символ в указанной позиции в объекте hstring.
hstring::operator= (оператор назначения)
Назначает значение объекту hstring.
Синтаксис
winrt::hstring& operator=(winrt::hstring const& h);
winrt::hstring& operator=(std::wstring_view const& v);
Параметры
v
значение std::wstring_view для назначения объекту hstring.
Возвращаемое значение
Ссылка на объект hstring.
функция hstring::rbegin
Возвращает обратный итератор констант в один за пределами (один за последним символом) объекта hstring.
Синтаксис
std::reverse_iterator<wchar_t const*> rbegin() const noexcept;
Возвращаемое значение
Констант обратный итератор к одному за пределами (один за последним символом) объект hstring.
функция hstring::rend
Возвращает обратный итератор констант к первому символу в объекте hstring.
Синтаксис
std::reverse_iterator<wchar_t const*> rend() const noexcept;
Возвращаемое значение
Констант обратный итератор к первому символу в объекте hstring.
функция hstring::size
Возвращает количество символов в объекте hstring.
Синтаксис
uint32_t size() const noexcept;
Возвращаемое значение
uint32_t, содержащий количество символов в объекте hstring.
функция attach_abi
Присоединяет объект
Синтаксис
void attach_abi(winrt::hstring& object, HSTRING value) noexcept;
Параметры
object
объект hstring для работы.
value
дескриптор строки среды выполнения Windows.
функция copy_from_abi
Копирует в объект hstring из дескриптора в строку среды выполнения Windows. Очищает hstring, копирует параметр и начинает управлять дескриптором.
Синтаксис
void copy_from_abi(winrt::hstring& object, HSTRING value);
Параметры
object
объект hstring для работы.
value
дескриптор строки среды выполнения Windows.
функция copy_to_abi
Копирует в дескриптор в строку среды выполнения Windows из объекта hstring.
Синтаксис
void copy_to_abi(winrt::hstring const& object, HSTRING& value);
Параметры
object
объект hstring для работы.
функция detach_abi
Отсоединяет объект hstring от его дескриптора, возможно, чтобы вернуть его вызывающему объекту.
Синтаксис
HSTRING detach_abi(winrt::hstring& object) noexcept;
HSTRING detach_abi(winrt::hstring&& object) noexcept;
Параметры
object
объект hstring для работы.
Возвращаемое значение
Дескриптор строки среды выполнения Windows.
operator!= (оператор неравенства)
Возвращает значение, указывающее, не совпадают ли два параметра друг с другом.
Синтаксис
inline bool operator!=(winrt::hstring const& hLeft, winrt::hstring const& hRight) noexcept;
inline bool operator!=(winrt::hstring const& hLeft, std::wstring const& wRight) noexcept;
inline bool operator!=(winrt::hstring const& hLeft, wchar_t const* cRight) noexcept;
inline bool operator!=(std::wstring const& wLeft, winrt::hstring const& hRight) noexcept;
inline bool operator!=(wchar_t const* cLeft, winrt::hstring const& hRight) noexcept;
Параметры
wLeft
wRight
значение std::wstring
для сравнения с другим параметром.
cLeft
cRight
Указатель на массив констант wchar_t для сравнения с другим параметром.
Возвращаемое значение
true
, если два параметра не равны друг другу, в противном случае false
.
operator+ (оператор объединения)
Возвращает новый объект hstring, полученный из объединения двух параметров.
Синтаксис
inline hstring operator+(winrt::hstring const& hLeft, winrt::hstring const& hRight);
inline hstring operator+(winrt::hstring const& hLeft, std::wstring const& wRight);
inline hstring operator+(winrt::hstring const& hLeft, std::wstring_view const& vRight);
inline hstring operator+(winrt::hstring const& hLeft, wchar_t const* cRight);
inline hstring operator+(winrt::hstring const& hLeft, wchar_t scRight);
inline hstring operator+(std::wstring const& wLeft, winrt::hstring const& hRight);
inline hstring operator+(std::wstring_view const& vLeft, winrt::hstring const& hRight);
inline hstring operator+(wchar_t const* cLeft, winrt::hstring const& hRight);
inline hstring operator+(wchar_t scLeft, winrt::hstring const& hRight);
Параметры
wLeft
wRight
значение std::wstring
для объединения с другим параметром.
vLeft
vRight
значение std::wstring_view для объединения с другим параметром.
cLeft
cRight
Указатель на массив констант wchar_t для объединения с другим параметром.
scLeft
scRight
A wchar_t для объединения с другим параметром.
Возвращаемое значение
Новый объект hstring в результате объединения двух параметров.
оператор< (меньше оператора)
Возвращает значение, указывающее, меньше ли первый параметр, чем второй параметр.
Синтаксис
inline bool operator<(winrt::hstring const& hLeft, winrt::hstring const& hRight) noexcept;
inline bool operator<(winrt::hstring const& hLeft, std::wstring const& wRight) noexcept;
inline bool operator<(winrt::hstring const& hLeft, wchar_t const* cRight) noexcept;
inline bool operator<(std::wstring const& wLeft, winrt::hstring const& hRight) noexcept;
inline bool operator<(wchar_t const* cLeft, winrt::hstring const& hRight) noexcept;
Параметры
wLeft
wRight
значение std::wstring
для сравнения с другим параметром.
cLeft
cRight
Указатель на массив констант wchar_t для сравнения с другим параметром.
Возвращаемое значение
true
, если первый параметр меньше второго параметра, в противном случае false
.
оператор<= (оператор меньше или равно)
Возвращает значение, указывающее, меньше ли первый параметр или равен второму параметру.
Синтаксис
inline bool operator<=(winrt::hstring const& hLeft, winrt::hstring const& hRight) noexcept;
inline bool operator<=(winrt::hstring const& hLeft, std::wstring const& wRight) noexcept;
inline bool operator<=(winrt::hstring const& hLeft, wchar_t const* cRight) noexcept;
inline bool operator<=(std::wstring const& wLeft, winrt::hstring const& hRight) noexcept;
inline bool operator<=(wchar_t const* cLeft, winrt::hstring const& hRight) noexcept;
Параметры
wLeft
wRight
значение std::wstring
для сравнения с другим параметром.
cLeft
cRight
Указатель на массив констант wchar_t для сравнения с другим параметром.
Возвращаемое значение
true
, если первый параметр меньше или равен второму параметру, в противном случае false
.
operator== (оператор равенства)
Возвращает значение, указывающее, равны ли два параметра друг другу.
Синтаксис
inline bool operator==(winrt::hstring const& hLeft, winrt::hstring const& hRight) noexcept;
inline bool operator==(winrt::hstring const& hLeft, std::wstring const& wRight) noexcept;
inline bool operator==(winrt::hstring const& hLeft, wchar_t const* cRight) noexcept;
inline bool operator==(std::wstring const& wLeft, winrt::hstring const& hRight) noexcept;
inline bool operator==(wchar_t const* cLeft, winrt::hstring const& hRight) noexcept;
Параметры
wLeft
wRight
значение std::wstring
для сравнения с другим параметром.
cLeft
cRight
Указатель на массив констант wchar_t для сравнения с другим параметром.
Возвращаемое значение
true
, если два параметра равны друг другу, в противном случае false
.
оператор> (оператор больше)
Возвращает значение, указывающее, больше ли первый параметр, чем второй параметр.
Синтаксис
inline bool operator>(winrt::hstring const& hLeft, winrt::hstring const& hRight) noexcept;
inline bool operator>(winrt::hstring const& hLeft, std::wstring const& wRight) noexcept;
inline bool operator>(winrt::hstring const& hLeft, wchar_t const* cRight) noexcept;
inline bool operator>(std::wstring const& wLeft, winrt::hstring const& hRight) noexcept;
inline bool operator>(wchar_t const* cLeft, winrt::hstring const& hRight) noexcept;
Параметры
wLeft
wRight
значение std::wstring
для сравнения с другим параметром.
cLeft
cRight
Указатель на массив констант wchar_t для сравнения с другим параметром.
Возвращаемое значение
true
, если первый параметр больше второго параметра, в противном случае false
.
оператор>= (оператор больше или равно)
Возвращает значение, указывающее, больше ли первый параметр или равен второму параметру.
Синтаксис
inline bool operator>=(winrt::hstring const& hLeft, winrt::hstring const& hRight) noexcept;
inline bool operator>=(winrt::hstring const& hLeft, std::wstring const& wRight) noexcept;
inline bool operator>=(winrt::hstring const& hLeft, wchar_t const* cRight) noexcept;
inline bool operator>=(std::wstring const& wLeft, winrt::hstring const& hRight) noexcept;
inline bool operator>=(wchar_t const* cLeft, winrt::hstring const& hRight) noexcept;
Параметры
wLeft
wRight
значение std::wstring
для сравнения с другим параметром.
cLeft
cRight
Указатель на массив констант wchar_t для сравнения с другим параметром.
Возвращаемое значение
true
, если первый параметр больше или равен второму параметру, в противном случае false
.
См. также
- пространства имен winrt
- обработка строк в C++/WinRT