Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Next

Chapter 1. Boost.TypeTraits

various authors

Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Table of Contents

Introduction
Background and Tutorial
Type Traits by Category
Type Traits that Describe the Properties of a Type
Categorizing a Type
General Type Properties
Relationships Between Two Types
Operator Type Traits
Type Traits that Transform One Type to Another
Synthesizing Types with Specific Alignments
Decomposing Function Types
User Defined Specializations
Support for Compiler Intrinsics
MPL Interoperability
Examples
An Optimized Version of std::copy
An Optimised Version of std::fill
An Example that Omits Destructor Calls For Types with Trivial Destructors
An improved Version of std::iter_swap
Convert Numeric Types and Enums to double
Improving std::min with common_type
Alphabetical Reference
add_const
add_cv
add_lvalue_reference
add_pointer
add_reference
add_rvalue_reference
add_volatile
aligned_storage
alignment_of
conditional
conjunction
common_type
copy_cv
copy_cv_ref
copy_reference_
decay
declval
detected
detected_or
disjunction
enable_if_
extent
floating_point_promotion
function_traits
has_bit_and
has_bit_and_assign
has_bit_or
has_bit_or_assign
has_bit_xor
has_bit_xor_assign
has_complement
has_dereference
has_divides
has_divides_assign
has_equal_to
has_greater
has_greater_equal
has_left_shift
has_left_shift_assign
has_less
has_less_equal
has_logical_and
has_logical_not
has_logical_or
has_minus
has_minus_assign
has_modulus
has_modulus_assign
has_multiplies
has_multiplies_assign
has_negate
has_new_operator
has_not_equal_to
has_nothrow_assign
has_nothrow_constructor
has_nothrow_copy
has_nothrow_destructor
has_nothrow_copy_constructor
has_nothrow_default_constructor
has_plus
has_plus_assign
has_post_decrement
has_post_increment
has_pre_decrement
has_pre_increment
has_right_shift
has_right_shift_assign
has_trivial_assign
has_trivial_constructor
has_trivial_copy
has_trivial_copy_constructor
has_trivial_default_constructor
has_trivial_destructor
has_trivial_move_assign
has_trivial_move_constructor
has_unary_minus
has_unary_plus
has_virtual_destructor
integral_constant
integral_promotion
is_abstract
is_arithmetic
is_array
is_assignable
is_base_of
is_bounded_array
is_class
is_complete
is_complex
is_compound
is_const
is_constructible
is_convertible
is_copy_assignable
is_copy_constructible
is_default_constructible
is_destructible
is_detected
is_detected_convertible
is_detected_exact
is_empty
is_enum
is_final
is_floating_point
is_function
is_fundamental
is_integral
is_list_constructible
is_lvalue_reference
is_member_function_pointer
is_member_object_pointer
is_member_pointer
is_nothrow_move_assignable
is_nothrow_move_constructible
is_nothrow_swappable
is_object
is_pod
is_pointer
is_polymorphic
is_reference
is_rvalue_reference
is_same
is_scalar
is_scoped_enum
is_signed
is_stateless
is_swappable
is_trivially_copyable
is_unbounded_array
is_union
is_unscoped_enum
is_unsigned
is_virtual_base_of
is_void
is_volatile
make_signed
make_unsigned
make_void
negation
nonesuch
promote
rank
remove_all_extents
remove_const
remove_cv
remove_cv_ref
remove_extent
remove_pointer
remove_reference
remove_volatile
type_identity
type_with_alignment
History
Credits
Class Index
Typedef Index
Macro Index
Index

A printer-friendly PDF version of this manual is also available.


Next