# Expressions and semantic

`xt::xexpression` and the semantic classes contain all the methods required to perform evaluation and assignment of expressions. They define the computed assignment operators, the assignment methods for `noalias` and the downcast methods.

- xexpression
  - `xt::xexpression`
  - `xt::xshared_expression`
    - `xshared_expression()`
    - `use_count()`
  - `make_xshared()`
  - `share()`
  - `share()`
- xsemantic_base
  - `xt::xsemantic_base`
    - `operator+=()`
    - `operator-=()`
    - `operator*=()`
    - `operator/=()`
    - `operator%=()`
    - `operator&=()`
    - `operator|=()`
    - `operator^=()`
    - `operator+=()`
    - `operator-=()`
    - `operator*=()`
    - `operator/=()`
    - `operator%=()`
    - `operator&=()`
    - `operator|=()`
    - `operator^=()`
    - `assign()`
    - `plus_assign()`
    - `minus_assign()`
    - `multiplies_assign()`
    - `divides_assign()`
    - `modulus_assign()`
    - `bit_and_assign()`
    - `bit_or_assign()`
    - `bit_xor_assign()`
- xcontainer_semantic
  - `xt::xcontainer_semantic`
    - `assign_temporary()`
- xview_semantic
  - `xt::xview_semantic`
    - `assign_temporary()`
- xeval
  - `eval()`
  - `as_strided()`