Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Function polymorphic_relaxed_get

Boost , The Boost C++ Libraries BoostBook Documentation Subset , Reference

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Function polymorphic_relaxed_get

boost::polymorphic_relaxed_get — Retrieves a value of a specified type from a given variant.Unlike polymorphic_strict_get does not assert at compile time that type U is one of the types that can be stored in variant.

Synopsis

// In header: <boost/variant/polymorphic_get.hpp>

template<typename U, typename T1, typename T2, ..., typename TN> 
  U * polymorphic_relaxed_get(variant<T1, T2, ..., TN> * operand);
template<typename U, typename T1, typename T2, ..., typename TN> 
  const U * polymorphic_relaxed_get(const variant<T1, T2, ..., TN> * operand);
template<typename U, typename T1, typename T2, ..., typename TN> 
  U & polymorphic_relaxed_get(variant<T1, T2, ..., TN> & operand);
template<typename U, typename T1, typename T2, ..., typename TN> 
  const U & polymorphic_relaxed_get(const variant<T1, T2, ..., TN> & operand);

Description

Функция<polymorphic_get>позволяет проверять время выполнения, типобезопасно извлекать содержимое данного<variant>. Функция удаётся только в том случае, если содержимое относится к указанному типу<U>или типу, полученному из типа<U>, с отказом, указанным как описано ниже.

Рекомендация: Используйте<polymorphic_get>или<polymorphic_strict_get>в новом коде.<polymorphic_strict_get>обеспечивает больше проверок времени компиляции и его поведение ближе к<std::get>от C++ Стандартная библиотека.

Предупреждение: После того, как<operand>или его содержание уничтожено (например, когда данному<variant>присваивается значение другого типа), возвращенная ссылка считается недействительной. Таким образом, при обращении с возвращенной ссылкой необходимо проявлять значительную осторожность и осторожность.

Примечания:

В рамках своей гарантии безопасности типа<polymorphic_get>обеспечивает<const>правильность. Таким образом, указанный тип<U>должен быть<const>квалифицирован всякий раз, когда<operand>или его содержание также<const>квалифицировано. Обратное, однако, не требуется: то есть указанный тип<U>может быть<const>— квалифицирован даже тогда, когда<operand>и его содержание нет.

Возвращение:

При прохождении указателя<polymorphic_get>возвращает указатель на значение содержимого, если он относится к указанному типу<U>или типу, полученному из типа<U>; в противном случае возвращается нулевой указатель. При прохождении ссылки<polymorphic_get>возвращается ссылка на содержание значения, если оно относится к указанному типу<U>или типу, полученному из типа<U>; в противном случае выбрасывается исключение (см. ниже).

Броски:

Перегрузки, принимающие указатель<variant>, не будут бросаться; перегрузки, принимающие эталонный бросок<variant><bad_polymorphic_get>, если содержимое не относится к указанному типу<U>или типу, полученному из типа<U>.

Обоснование:

Хотя посещение через<apply_visitor>обычно предпочтительнее из-за его большей безопасности,<polymorphic_get>может быть более удобным в некоторых случаях из-за его простого использования.

PrevUpHomeNext

Статья Function polymorphic_relaxed_get раздела The Boost C++ Libraries BoostBook Documentation Subset Reference может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Reference ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 07:21:05/0.0060830116271973/0