|  | Home | Libraries | People | FAQ | More | 
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.
// 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); template<typename U, typename T1, typename T2, ..., typename TN> U && relaxed_get(variant<T1, T2, ..., TN> && operand);
The get function allows run-time checked,
          type-safe retrieval of the content of the given
          variant. The function succeeds
          only if the content is of the specified type U, with
          failure indicated as described below.
Recomendation: Use
          get or strict_get in new code.
          strict_get
          provides more compile time checks and its behavior is closer to std::get
          from C++ Standard Library.
Warning: After either
          operand or its content is destroyed (e.g., when the
          given variant is assigned a
          value of different type), the returned reference is invalidated.
          Thus, significant care and caution must be extended when handling
          the returned reference.
| Notes: | As part of its guarantee of type-safety, getenforcesconst-correctness. Thus, the specified typeUmust beconst-qualified wheneveroperandor its content is likewiseconst-qualified. The converse, however, is not required:
        that is, the specified typeUmay beconst-qualified even whenoperandand its
        content are not. | 
| Returns: | If passed a pointer, getreturns a pointer to
        the value content if it is of the specified typeU;
        otherwise, a null pointer is returned. If passed a reference,getreturns a reference to the value content if it is of
        the specified typeU; otherwise, an exception is thrown
        (see below). | 
| Throws: | Overloads taking a variantpointer will not
        throw; the overloads taking avariantreference throwbad_getif the content is not of
        the specified typeU. | 
| Rationale: | While visitation via apply_visitoris generally preferred due to its greater safety,getmay
        may be more convenient in some cases due to its straightforward
        usage. |