.#include <boost/leaf/error.hpp>
[source,c++]
----
namespace boost { namespace leaf {

  class error_id;

  template <class... E>
  error_id new_error( E && ... e ) noexcept;

  error_id next_error() noexcept;

  error_id last_error() noexcept;

  class error_id: public std::error_code
  {
  public:

    error_id() noexcept = default;

    template <class... E>
    error_id( std::error_code const & ec, E && ... e ) noexcept;

    template <class... E>
    error_id( std::error_code && ec, E && ... e ) noexcept;

    template <class... E>
    error_id propagate( E && ... e ) const noexcept;
  };

  struct e_original_ec { std::error_code value; };

  template <class T>
  struct is_error_type
  {
    static constexpr bool value = <<unspecified>>;
  };

} }
----

[.text-right]
<<error_id>> | <<error_id::error_id>> | <<new_error>> | <<next_error>> | <<last_error>> | <<propagate>> | <<is_error_type>>
