D 2017-04-06T23:58:31.194
L Features/IntegratedTypeTraits
P 91ceca280e89317d0a055ab2e944a45d1da8896a
U luismachuca
W 2397
The cxxomfort library adds among its [Features] a set of [Features/TypeTraits|C++11 traits] and helper utilities to its public interface. However, for its own use, it also adds a subset of the
interface used to remove dependencies on compiler-specific or third-party Tr1 implementations where those might not be available (eg.: some Express versions of Visual C++).
In case they are required by client code (for example: to implement a backport of
in a compiler that doesn't have it available) these traits are included in header cxxomfort/util/type_traits.hpp
and defined under namespace cxxomfort::traits
. They are not mapped to namespace std.
The traits defined are, for the most part, those that do not require compiler-specific intrinsics and those that deal with pointer and reference transformations.
List of type_traits
defined by this library:
* is_void
, is_integral
, is_floating_point
, is_arithmetic
, is_fundamental
, used to identify C++'s native types and their behaviours.
*
used for CV-awareness.
*
,
,
, used for CV-awareness.
* is_pointer
, is_reference
.
*
,
.
* is_signed
, is_unsigned
.
* make_signed
, make_unsigned
.
* is_array
, rank
, extent
, remove_extent
, used for metaprogramming behaviour of array types.
* is_same
.
* is_function
(for function signatures w/up to 5 arguments).
* is_empty
(note: this is an approximation; does not use compiler intrinsics usually available).
* is_enum
, is_union
(note: these require compiler intrinsics support such as __is_enum
).