### async_write_at

The `async_write_at` function is a composed asynchronous operation that writes a certain amount of data at the specified offset before completion.

Start an asynchronous operation to write all of the supplied data at the specified offset.

    template<
        typename AsyncRandomAccessWriteDevice,
        typename ConstBufferSequence,
        typename WriteToken = default_completion_token_t<        typename AsyncRandomAccessWriteDevice::executor_type>>
    DEDUCED async_write_at(
        AsyncRandomAccessWriteDevice & d,
        uint64_t offset,
        const ConstBufferSequence & buffers,
        WriteToken && token = default_completion_token_t< typename AsyncRandomAccessWriteDevice::executor_type >(),
        constraint_t< !is_completion_condition< WriteToken >::value >  = 0);
      » more...

Start an asynchronous operation to write a certain amount of data at the specified offset.

    template<
        typename AsyncRandomAccessWriteDevice,
        typename ConstBufferSequence,
        typename CompletionCondition,
        typename WriteToken = default_completion_token_t<        typename AsyncRandomAccessWriteDevice::executor_type>>
    DEDUCED async_write_at(
        AsyncRandomAccessWriteDevice & d,
        uint64_t offset,
        const ConstBufferSequence & buffers,
        CompletionCondition completion_condition,
        WriteToken && token = default_completion_token_t< typename AsyncRandomAccessWriteDevice::executor_type >(),
        constraint_t< is_completion_condition< CompletionCondition >::value >  = 0);
      » more...

Start an asynchronous operation to write all of the supplied data at the specified offset.

    template<
        typename AsyncRandomAccessWriteDevice,
        typename Allocator,
        typename WriteToken = default_completion_token_t<        typename AsyncRandomAccessWriteDevice::executor_type>>
    DEDUCED async_write_at(
        AsyncRandomAccessWriteDevice & d,
        uint64_t offset,
        basic_streambuf< Allocator > & b,
        WriteToken && token = default_completion_token_t< typename AsyncRandomAccessWriteDevice::executor_type >(),
        constraint_t< !is_completion_condition< WriteToken >::value >  = 0);
      » more...

Start an asynchronous operation to write a certain amount of data at the specified offset.

    template<
        typename AsyncRandomAccessWriteDevice,
        typename Allocator,
        typename CompletionCondition,
        typename WriteToken = default_completion_token_t<        typename AsyncRandomAccessWriteDevice::executor_type>>
    DEDUCED async_write_at(
        AsyncRandomAccessWriteDevice & d,
        uint64_t offset,
        basic_streambuf< Allocator > & b,
        CompletionCondition completion_condition,
        WriteToken && token = default_completion_token_t< typename AsyncRandomAccessWriteDevice::executor_type >(),
        constraint_t< is_completion_condition< CompletionCondition >::value >  = 0);
      » more...

##### Requirements

Header: `asio/write_at.hpp`

Convenience header: `asio.hpp`