Quick Links: |
#include <bslmf_isenum.h>
Public Member Functions | |
IsEnum_AnyArithmeticType (wchar_t) | |
IsEnum_AnyArithmeticType (int) | |
IsEnum_AnyArithmeticType (unsigned int) | |
IsEnum_AnyArithmeticType (long) | |
IsEnum_AnyArithmeticType (unsigned long) | |
IsEnum_AnyArithmeticType (long long) | |
IsEnum_AnyArithmeticType (unsigned long long) | |
IsEnum_AnyArithmeticType (double) | |
IsEnum_AnyArithmeticType (long double) |
This struct
provides a type that is convertible from any arithmetic (i.e., integral or floating-point) type, or any enumerated type. Converting any type to an IsEnum_AnyArithmeticType
is a user-defined conversion and cannot be combined with any other implicit user-defined conversions. Thus, even class types that have conversion operators to arithmetic types or enumerated types will not be implicitly convertible to IsEnum_AnyArithmeticType
.
bslmf::IsEnum_AnyArithmeticType::IsEnum_AnyArithmeticType | ( | wchar_t | ) |
IMPLICIT:
bslmf::IsEnum_AnyArithmeticType::IsEnum_AnyArithmeticType | ( | unsigned | long | ) |
IMPLICIT:
bslmf::IsEnum_AnyArithmeticType::IsEnum_AnyArithmeticType | ( | long | long | ) |
IMPLICIT:
bslmf::IsEnum_AnyArithmeticType::IsEnum_AnyArithmeticType | ( | long | double | ) |
IMPLICIT: Create an IsEnum_AnyArithmeticType
object from a value of one of the indicated arithmetic types. Note that it is not necessary to provide overloads taking bool
, char
, or short
because they are automatically promoted to int
; nor is a float
overload needed because it is automatically promoted to double
. Also note that the other variants are necessary because a conversion from, e.g., a long double
to a double
does not take precedence over a conversion from long double
to int
and, therefore, would be ambiguous.