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

Function 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 relaxed_get

boost::relaxed_get — Retrieves a value of a specified type from a given variant. Unlike 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/get.hpp>

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

Description

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

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

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

Примечания:

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

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

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

Броски:

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

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

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

PrevUpHomeNext

Статья Function 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 02:43:58/0.0037600994110107/0