pplx::task<bool> cloud_queue::delete_queue_if_exists_async(const queue_request_options& options, operation_context context)
    {
        return exists_async_impl(options, context, /* allow_secondary */ false).then([this, options, context] (bool exists) -> pplx::task<bool>
        {
            if (!exists)
            {
                return pplx::task_from_result(false);
            }

            return delete_async_impl(options, context, /* allow_not_found */ true);
        });
    }
    pplx::task<bool> cloud_table::delete_table_if_exists_async(const table_request_options& options, operation_context context)
    {
        auto instance = std::make_shared<cloud_table>(*this);
        return exists_async_impl(options, context, /* allow_secondary */ false).then([instance, options, context] (bool exists) -> pplx::task<bool>
        {
            if (!exists)
            {
                return pplx::task_from_result(false);
            }

            return instance->delete_async_impl(options, context, /* allow_not_found */ true);
        });
    }
 pplx::task<bool> cloud_queue::exists_async(const queue_request_options& options, operation_context context) const
 {
     return exists_async_impl(options, context, /* allow_secondary */ true);
 }