# C++ named requirements: NumericType

From cppreference.com
< cpp‎ | named req

Specifies that the type can be used as the template argument of std::valarray

### Requirements

for a type `T` to be an NumericType:

- `T` cannot be a reference
- `T` cannot be cv-qualified
- If `T` is a class, it

  - does not overload operator&
  - has no pure virtual member functions (is not abstract)
  - has a public default constructor
  - has a public copy constructor T::T(const T&)
  - has a public destructor
  - has a public assignment operator T& T::operator=(const T&) or T& T::operator=(T)
  - default constructor followed by assignment has the same effect as copy constructor
  - copy constructor with the value `T()` has the same effect as value-initialization
  - destructor followed by copy constructor has the same effect as assignment

- No operation on `T` may throw exceptions

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/named_req/NumericType&oldid=105387"