C++ concepts: NumericType

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

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.