# SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
# SPDX-FileCopyrightText: Bradley M. Bell <bradbell@seanet.com>
# SPDX-FileContributor: 2003-23 Bradley M. Bell
# ----------------------------------------------------------------------------
{xrst_begin base_member}

Required Base Class Member Functions
####################################

Notation
********

.. csv-table::
   :widths: auto

   **Symbol**,**Meaning**
   *Base*,The base type corresponding to ``AD`` < *Base* >
   *b*,An object of type ``bool``
   *i*,An object of type ``int``
   *s*,An object of type ``size_t``
   *d*,An object of type ``double``
   *x*,An object of type ``const`` *Base* &
   *y*,An object of type ``const`` *Base* &
   *z*,An object of type *Base*

Constructors
************

Default
=======
*Base z*

int
===
*Base z* ( *i* )

size_t
======
*Base z* ( *s* )

double
======
*Base z* ( *d* )

Copy
====
*Base z* ( *x* )

Unary Operators
***************
For ``op`` equal to
``+`` ,
``-``
the following operation must be supported:

   *z* = *op* *x*

Assignment Operators
********************
For *op* equal to
= ,
``+=`` ,
``-=`` ,
``*=`` , and
``/=`` the following operation must be supported:

   *z* *op* *x*

Binary Operators
****************
For *op* equal to
``+`` ,
``-`` ,
``*`` , and
``/`` the following operation must be supported:

   *z* = *x* *op* *y*

Bool Operators
**************
For *op* equal to
``==`` ,
``!=`` ,
``<=`` ,
the following operation must be supported:

   *b* = *x* *op* *y*

Example
*******
See the heading Class Definition in
:ref:`base_alloc<base_alloc.hpp@Class Definition>` .

{xrst_end base_member}
