value::as_uint64

## `value::as_uint64`

Return the underlying `std::uint64_t`, or throw an exception.

### Synopsis

    std::uint64_t&
    as_uint64(
        boost::source_location const& loc = BOOST_CURRENT_LOCATION); (1)

    std::uint64_t
    as_uint64(
        boost::source_location const& loc = BOOST_CURRENT_LOCATION) const; (2)

### Description

If `is_uint64()` is `true`, returns a reference to (1) or a copy of (2) the underlying `std::uint64_t`, otherwise throws an exception.

| This function is intended for direct access to the underlying object, if it has the type `std::uint64_t`. It does not convert the underlying object to the type `std::uint64_t` even if a lossless conversion is possible. If you are not sure which kind your `value` has, and you only care about getting a `std::uint64_t` number, consider using `to_number` instead.

### Exception Safety

Strong guarantee.

### Parameters

Name | Description
--- | ---
`loc` | `boost::source_location` to use in thrown exception; the source location of the call site by default.

### Exceptions

Type | Thrown On
--- | ---
`boost::system::system_error` | `! this->is_uint64()`.

### Complexity

Constant.

Edit this page