# xsemantic_base

Defined in `xtensor/xsemantic.hpp`

template <class D>
class `xt::``xsemantic_base`

  Base interface for assignable xexpressions.

  The xsemantic_base class defines the interface for assignable xexpressions.

  Template Parameters
    - `D`: The derived type, i.e. the inheriting class for which xsemantic_base provides the interface.

  Inherits from xt::xexpression< D >

  Subclassed by xt::xadaptor_semantic< D >, xt::xcontainer_semantic< D >, xt::xview_semantic< D >

  Computed assignement

  template <class E>
  auto `operator+=`(const E &e)

    Adds the scalar `e` to `*this`.

    Return
      a reference to `*this`.
    Parameters
      - `e`: the scalar to add.
  template <class E>
  auto `operator-=`(const E &e)

    Subtracts the scalar `e` from `*this`.

    Return
      a reference to `*this`.
    Parameters
      - `e`: the scalar to subtract.
  template <class E>
  auto `operator*=`(const E &e)

    Multiplies `*this` with the scalar `e`.

    Return
      a reference to `*this`.
    Parameters
      - `e`: the scalar involved in the operation.
  template <class E>
  auto `operator/=`(const E &e)

    Divides `*this` by the scalar `e`.

    Return
      a reference to `*this`.
    Parameters
      - `e`: the scalar involved in the operation.
  template <class E>
  auto `operator+=`(const xexpression<E> &e)

    Adds the xexpression `e` to `*this`.

    Return
      a reference to `*this`.
    Parameters
      - `e`: the xexpression to add.
  template <class E>
  auto `operator-=`(const xexpression<E> &e)

    Subtracts the xexpression `e` from `*this`.

    Return
      a reference to `*this`.
    Parameters
      - `e`: the xexpression to subtract.
  template <class E>
  auto `operator*=`(const xexpression<E> &e)

    Multiplies `*this` with the xexpression `e`.

    Return
      a reference to `*this`.
    Parameters
      - `e`: the xexpression involved in the operation.
  template <class E>
  auto `operator/=`(const xexpression<E> &e)

    Divides `*this` by the xexpression `e`.

    Return
      a reference to `*this`.
    Parameters
      - `e`: the xexpression involved in the operation.

  Assign functions

  template <class E>
  auto `assign`(const xexpression<E> &e)

    Assigns the xexpression `e` to `*this`.

    Ensures no temporary will be used to perform the assignment.

    Return
      a reference to `*this`.
    Parameters
      - `e`: the xexpression to assign.
  template <class E>
  auto `plus_assign`(const xexpression<E> &e)

    Adds the xexpression `e` to `*this`.

    Ensures no temporary will be used to perform the assignment.

    Return
      a reference to `*this`.
    Parameters
      - `e`: the xexpression to add.
  template <class E>
  auto `minus_assign`(const xexpression<E> &e)

    Subtracts the xexpression `e` to `*this`.

    Ensures no temporary will be used to perform the assignment.

    Return
      a reference to `*this`.
    Parameters
      - `e`: the xexpression to subtract.
  template <class E>
  auto `multiplies_assign`(const xexpression<E> &e)

    Multiplies `*this` with the xexpression `e`.

    Ensures no temporary will be used to perform the assignment.

    Return
      a reference to `*this`.
    Parameters
      - `e`: the xexpression involved in the operation.
  template <class E>
  auto `divides_assign`(const xexpression<E> &e)

    Divides `*this` by the xexpression `e`.

    Ensures no temporary will be used to perform the assignment.

    Return
      a reference to `*this`.
    Parameters
      - `e`: the xexpression involved in the operation.