C++ named requirements: NumericType

From cppreference.com
< cpp‎ | named req
C++ named requirements

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


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