/*!
@mainpage Common Components for the Google Cloud C++ Client Libraries

# Overview

This library contains common components shared by all the Google Cloud C++
Client Libraries. Including:

- [Credentials](@ref google::cloud::Credentials) are used to configure
  authentication in the client libraries. See @ref guac for more
  details on authentication.
- [Options](@ref google::cloud::Options) are used to override the client library
  default configuration. See @ref options for more details on library
  configuration.
- [Status](@ref google::cloud::Status) error codes and details from an
  operation.
- [StatusOr<T>](@ref google::cloud::StatusOr) returns a value on success
  and a `Status` on error.
- [future<T>](@ref google::cloud::future) and
  [promise<T>](@ref google::cloud::promise) futures (a holder that will receive
  a value asynchronously) and promises (the counterpart of a future, where
  values are stored asynchronously). They satisfy the API for `std::future` and
  `std::promise`, and add support for callbacks and cancellation.

@warning
@parblock
Some namespaces are reserved for implementation details and are subject to
change without notice. Do not use any symbols in these namespaces as your
application may break when trying to use future versions of the library.

These namespaces include:

- Any namespace with `internal` in its name, including `google::cloud::internal`
  and `google::cloud::rest_internal`.
- Any namespace with `testing` in its name, including
  `google::cloud::testing_util`.
@endparblock

## More information

- @ref common-error-handling for more details about how the libraries report
  run-time errors and how you can handle them.
- @ref options for information about configuring the client libraries at
  runtime.
- @ref guac for more details about how to configure authentication in the client
  libraries.
- @ref logging for information about enabling logging to the console in the
  client libraries.
*/
