Begin updating docs to match new code.

This commit is contained in:
jzmaddock
2015-06-08 09:05:40 +01:00
parent acf6e41edb
commit 719ea20756
123 changed files with 593 additions and 858 deletions

View File

@@ -17,10 +17,6 @@ __type The same type as `T const` for all `T`.
__std_ref 3.9.3.
__compat If the compiler does not support partial specialization of class-templates
then this template will compile, but the member `type` will always be the same as
type `T` except where __transform_workaround have been applied.
__header ` #include <boost/type_traits/add_const.hpp>` or ` #include <boost/type_traits.hpp>`
[table Examples
@@ -37,5 +33,7 @@ __header ` #include <boost/type_traits/add_const.hpp>` or ` #include <boost/type
]
[all_compilers]
[endsect]

View File

@@ -17,10 +17,6 @@ __type The same type as `T const volatile` for all `T`.
__std_ref 3.9.3.
__compat If the compiler does not support partial specialization of class-templates
then this template will compile, but the member `type` will always be the same as
type `T` except where __transform_workaround have been applied.
__header ` #include <boost/type_traits/add_cv.hpp>` or ` #include <boost/type_traits.hpp>`
[table Examples
@@ -37,5 +33,7 @@ __header ` #include <boost/type_traits/add_cv.hpp>` or ` #include <boost/type_tr
]
[all_compilers]
[endsect]

View File

@@ -19,10 +19,6 @@ the member typedef type shall name `U&`; otherwise, type shall name `T`.
__std_ref 20.7.6.2.
__compat If the compiler does not support partial specialization of class-templates
then this template will compile, but the member `type` will always be the same as
type `T` except where __transform_workaround have been applied.
__header ` #include <boost/type_traits/add_lvalue_reference.hpp>` or ` #include <boost/type_traits.hpp>`
[table Examples
@@ -43,5 +39,7 @@ __header ` #include <boost/type_traits/add_lvalue_reference.hpp>` or ` #include
]
[all_compilers]
[endsect]

View File

@@ -16,15 +16,11 @@
__type The same type as `remove_reference<T>::type*`.
The rationale for this template
is that it produces the same type as `TYPEOF(&t)`,
is that it produces the same type as `decltype(&t)`,
where `t` is an object of type `T`.
__std_ref 8.3.1.
__compat If the compiler does not support partial specialization of class-templates
then this template will compile, but the member `type` will always be the same as
type `T` except where __transform_workaround have been applied.
__header ` #include <boost/type_traits/add_pointer.hpp>` or ` #include <boost/type_traits.hpp>`
[table Examples
@@ -41,5 +37,7 @@ __header ` #include <boost/type_traits/add_pointer.hpp>` or ` #include <boost/ty
]
[all_compilers]
[endsect]

View File

@@ -23,10 +23,6 @@ __type If `T` is not a reference type then `T&`, otherwise `T`.
__std_ref 8.3.2.
__compat If the compiler does not support partial specialization of class-templates
then this template will compile, but the member `type` will always be the same as
type `T` except where __transform_workaround have been applied.
__header ` #include <boost/type_traits/add_reference.hpp>` or ` #include <boost/type_traits.hpp>`
[table Examples
@@ -43,5 +39,7 @@ __header ` #include <boost/type_traits/add_reference.hpp>` or ` #include <boost/
]
[all_compilers]
[endsect]

View File

@@ -21,11 +21,6 @@ reference. -end note\]].
__std_ref 20.7.6.2.
__compat If the compiler does not support partial specialization of class-templates
and rvalue references
then this template will compile, but the member `type` will always be the same as
type `T`.
__header ` #include <boost/type_traits/add_rvalue_reference.hpp>` or ` #include <boost/type_traits.hpp>`
[table Examples
@@ -46,5 +41,7 @@ __header ` #include <boost/type_traits/add_rvalue_reference.hpp>` or ` #include
]
__compat In the absence of rvalue-reference support this trait has no effect.
[endsect]

View File

@@ -17,10 +17,6 @@ __type The same type as `T volatile` for all `T`.
__std_ref 3.9.3.
__compat If the compiler does not support partial specialization of class-templates
then this template will compile, but the member `type` will always be the same as
type `T` except where __transform_workaround have been applied.
__header ` #include <boost/type_traits/add_volatile.hpp>` or ` #include <boost/type_traits.hpp>`
[table Examples
@@ -37,5 +33,7 @@ __header ` #include <boost/type_traits/add_volatile.hpp>` or ` #include <boost/t
]
[all_compilers]
[endsect]

View File

@@ -18,7 +18,5 @@ __header ` #include <boost/type_traits/conditional.hpp>` or ` #include <boost/ty
If B is true, the member typedef type shall equal T. If B is false, the member typedef type shall equal U.
This trait is really just an alias for `boost::mpl::if_c`.
[endsect]

View File

@@ -36,5 +36,7 @@ __header ` #include <boost/type_traits/decay.hpp>` or ` #include <boost/type_tra
]
[all_compilers]
[endsect]

View File

@@ -44,5 +44,7 @@ expression that evaluates to /0/: `boost::array` is a class type and [*not an ar
[:`extent<T>::value_type` is the type `std::size_t`.]
[all_compilers]
[endsect]

View File

@@ -33,5 +33,7 @@ __header ` #include <boost/type_traits/floating_point_promotion.hpp>` or ` #incl
]
[all_compilers]
[endsect]

View File

@@ -52,5 +52,7 @@ type use __remove_pointer.]
]
[all_compilers]
[endsect]

View File

@@ -44,9 +44,7 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[has_binary_operator_compat]
[*Known issues:]

View File

@@ -28,6 +28,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_bit_and_assign.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_bit_and_assign<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
@@ -44,10 +46,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether binary `operator&=` is public or not:

View File

@@ -28,6 +28,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_bit_or.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_bit_or<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
@@ -44,10 +46,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether binary `operator|` is public or not:

View File

@@ -28,6 +28,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_bit_or_assign.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_bit_or_assign<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
@@ -44,10 +46,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether binary `operator|=` is public or not:

View File

@@ -28,6 +28,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_bit_xor.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_bit_xor<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
@@ -44,10 +46,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether binary `operator^` is public or not:

View File

@@ -28,6 +28,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_bit_xor_assign.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_bit_xor_assign<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
@@ -44,10 +46,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether binary `operator^=` is public or not:

View File

@@ -27,6 +27,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_complement.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_complement<Rhs, Ret>::value_type` is the type `bool`.]
@@ -46,10 +48,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether prefix `operator~` is public or not:

View File

@@ -27,6 +27,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_dereference.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_dereference<Rhs, Ret>::value_type` is the type `bool`.]
@@ -49,10 +51,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether prefix `operator*` is public or not:

View File

@@ -28,6 +28,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_divides.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_divides<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
@@ -46,10 +48,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether binary `operator/` is public or not:

View File

@@ -28,6 +28,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_divides_assign.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_divides_assign<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
@@ -46,10 +48,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether binary `operator/=` is public or not:

View File

@@ -28,6 +28,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_equal_to.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_equal_to<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
@@ -46,10 +48,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether binary `operator==` is public or not:

View File

@@ -28,6 +28,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_greater.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_greater<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
@@ -46,10 +48,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether binary `operator>` is public or not:

View File

@@ -28,6 +28,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_greater_equal.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_greater_equal<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
@@ -46,10 +48,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether binary `operator>=` is public or not:

View File

@@ -28,6 +28,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_left_shift.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_left_shift<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
@@ -47,10 +49,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether binary `operator<<` is public or not:

View File

@@ -28,6 +28,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_left_shift_assign.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_left_shift_assign<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
@@ -44,10 +46,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether binary `operator<<=` is public or not:

View File

@@ -28,6 +28,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_less.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_less<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
@@ -46,10 +48,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether binary `operator<` is public or not:

View File

@@ -28,6 +28,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_less_equal.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_less_equal<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
@@ -46,10 +48,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether binary `operator<=` is public or not:

View File

@@ -28,6 +28,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_logical_and.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_logical_and<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
@@ -45,10 +47,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether binary `operator&&` is public or not:

View File

@@ -27,6 +27,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_logical_not.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_logical_not<Rhs, Ret>::value_type` is the type `bool`.]
@@ -45,10 +47,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether prefix `operator!` is public or not:

View File

@@ -28,6 +28,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_logical_or.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_logical_or<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
@@ -45,10 +47,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether binary `operator||` is public or not:

View File

@@ -28,6 +28,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_minus.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_minus<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
@@ -46,10 +48,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether binary `operator-` is public or not:

View File

@@ -28,6 +28,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_minus_assign.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_minus_assign<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
@@ -46,10 +48,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether binary `operator-=` is public or not:

View File

@@ -28,6 +28,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_modulus.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_modulus<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
@@ -44,10 +46,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether binary `operator%` is public or not:

View File

@@ -28,6 +28,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_modulus_assign.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_modulus_assign<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
@@ -44,10 +46,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether binary `operator%=` is public or not:

View File

@@ -28,6 +28,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_multiplies.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_multiplies<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
@@ -46,10 +48,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether binary `operator*` is public or not:

View File

@@ -28,6 +28,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_multiplies_assign.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_multiplies_assign<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
@@ -46,10 +48,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether binary `operator*=` is public or not:

View File

@@ -27,6 +27,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_negate.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_negate<Rhs, Ret>::value_type` is the type `bool`.]
@@ -45,10 +47,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether prefix `operator-` is public or not:

View File

@@ -12,9 +12,7 @@
__inherit If T is a (possibly cv-qualified) type with an overloaded new-operator
then inherits from __true_type, otherwise inherits from __false_type.
__compat Not usable with compilers that do not support "substitution failure is not an error"
(in which case BOOST_NO_SFINAE will be defined), also known to be broken with
the Borland/Codegear compiler.
[has_binary_operator_compat] Also known to be broken with the Borland/Codegear compilers.
__std_ref 12.5.

View File

@@ -28,6 +28,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_not_equal_to.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_not_equal_to<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
@@ -46,10 +48,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether binary `operator!=` is public or not:

View File

@@ -14,14 +14,11 @@ __inherit If T is a (possibly cv-qualified) type with a non-throwing assignment-
then inherits from __true_type, otherwise inherits from __false_type. Type `T`
must be a complete type.
__compat If the compiler does not support partial-specialization of class
templates, then this template can not be used with function types.
Without some (as yet unspecified) help from the compiler,
`has_nothrow_assign` will never report that a class or struct has a
non-throwing assignment-operator; this is always safe, if possibly sub-optimal.
Currently (May 2005) only Visual C++ 8 has the necessary compiler support to ensure that this
trait "just works".
__compat Either requires C++11 `noexcept` and `decltype` or else some (unspecified) help from the compiler.
Currently (June 2015) compilers more recent than Visual C++ 8, GCC-4.3, Greenhills 6.0,
Intel-11.0, and Codegear and all recent GCC versions have the necessary compiler __intrinsics to ensure that this
trait "just works". You may test to see if the necessary support is available
by checking to see if `defined(BOOST_HAS_NOTHROW_CONSTRUCTOR) || (!defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_CXX11_NOEXCEPT))` is true.
__header ` #include <boost/type_traits/has_nothrow_assign.hpp>` or ` #include <boost/type_traits.hpp>`

View File

@@ -19,16 +19,11 @@ must be a complete type.
These two traits are synonyms for each other.
__compat If the compiler does not support partial-specialization of class
templates, then this template can not be used with function types.
Without some (unspecified) help from the compiler,
`has_nothrow_constructor` will never report that a class or struct has a
non-throwing default-constructor; this is always safe, if possibly sub-optimal.
Currently (May 2011) compilers more recent than Visual C++ 8, GCC-4.3, Greenhills 6.0,
Intel-11.0, and Codegear have the necessary compiler __intrinsics to ensure that this
trait "just works". You may also test to see if the necessary __intrinsics are available
by checking to see if the macro `BOOST_HAS_NOTHROW_CONSTRUCTOR` is defined.
__compat Either requires C++11 `noexcept` and `decltype` or else some (unspecified) help from the compiler.
Currently (June 2015) compilers more recent than Visual C++ 8, GCC-4.3, Greenhills 6.0,
Intel-11.0, and Codegear and all recent GCC versions have the necessary compiler __intrinsics to ensure that this
trait "just works". You may test to see if the necessary support is available
by checking to see if `defined(BOOST_HAS_NOTHROW_CONSTRUCTOR) || (!defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_CXX11_NOEXCEPT))` is true.
__header ` #include <boost/type_traits/has_nothrow_constructor.hpp>` or ` #include <boost/type_traits.hpp>`

View File

@@ -28,6 +28,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_plus.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_plus<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
@@ -46,10 +48,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether binary `operator+` is public or not:

View File

@@ -28,6 +28,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_plus_assign.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_plus_assign<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
@@ -46,10 +48,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether binary `operator+=` is public or not:

View File

@@ -27,6 +27,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_post_decrement.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_post_decrement<Lhs, Ret>::value_type` is the type `bool`.]
@@ -47,10 +49,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether postfix `operator--` is public or not:

View File

@@ -27,6 +27,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_post_increment.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_post_increment<Lhs, Ret>::value_type` is the type `bool`.]
@@ -47,10 +49,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether postfix `operator++` is public or not:

View File

@@ -27,6 +27,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_pre_decrement.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_pre_decrement<Rhs, Ret>::value_type` is the type `bool`.]
@@ -47,10 +49,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether prefix `operator--` is public or not:

View File

@@ -27,6 +27,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_pre_increment.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_pre_increment<Rhs, Ret>::value_type` is the type `bool`.]
@@ -47,10 +49,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether prefix `operator++` is public or not:

View File

@@ -28,6 +28,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_right_shift.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_right_shift<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
@@ -47,10 +49,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether binary `operator>>` is public or not:

View File

@@ -28,6 +28,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_right_shift_assign.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_right_shift_assign<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
@@ -44,10 +46,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether binary `operator>>=` is public or not:

View File

@@ -27,6 +27,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_unary_minus.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_unary_minus<Rhs, Ret>::value_type` is the type `bool`.]
@@ -45,10 +47,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether prefix `operator-` is public or not:

View File

@@ -27,6 +27,8 @@ If `Ret=void`, the return type is checked to be exactly `void`.
__header `#include <boost/type_traits/has_unary_plus.hpp>` or `#include <boost/type_traits/has_operator.hpp>` or `#include <boost/type_traits.hpp>`
[has_binary_operator_compat]
__examples
[:`has_unary_plus<Rhs, Ret>::value_type` is the type `bool`.]
@@ -45,10 +47,6 @@ __examples
[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
[*Limitation:]
* Requires a compiler with working SFINAE.
[*Known issues:]
* This trait cannot detect whether prefix `operator+` is public or not:

View File

@@ -102,62 +102,6 @@
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
<span class="keyword">struct</span> <a class="link" href="../reference/remove_volatile.html" title="remove_volatile">remove_volatile</a><span class="special">;</span>
</pre>
<h5>
<a name="boost_typetraits.category.transform.h0"></a>
<span class="phrase"><a name="boost_typetraits.category.transform.broken_compiler_workarounds_"></a></span><a class="link" href="transform.html#boost_typetraits.category.transform.broken_compiler_workarounds_">Broken
Compiler Workarounds:</a>
</h5>
<p>
For all of these templates support for partial specialization of class templates
is required to correctly implement the transformation. On the other hand,
practice shows that many of the templates from this category are very useful,
and often essential for implementing some generic libraries. Lack of these
templates is often one of the major limiting factors in porting those libraries
to compilers that do not yet support this language feature. As some of these
compilers are going to be around for a while, and at least one of them is
very wide-spread, it was decided that the library should provide workarounds
where possible.
</p>
<p>
The basic idea behind the workaround is to manually define full specializations
of all type transformation templates for all fundamental types, and all their
1st and 2nd rank cv-[un]qualified derivative pointer types, and to provide
a user-level macro that will define all the explicit specializations needed
for any user-defined type T.
</p>
<p>
The first part guarantees the successful compilation of something like this:
</p>
<pre class="programlisting"><span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">((</span><span class="identifier">is_same</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">,</span> <span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">&amp;&gt;::</span><span class="identifier">type</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">));</span>
<span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">((</span><span class="identifier">is_same</span><span class="special">&lt;</span><span class="keyword">char</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="keyword">char</span> <span class="keyword">const</span><span class="special">&amp;&gt;::</span><span class="identifier">type</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">));</span>
<span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">((</span><span class="identifier">is_same</span><span class="special">&lt;</span><span class="keyword">char</span> <span class="keyword">volatile</span><span class="special">,</span> <span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="keyword">char</span> <span class="keyword">volatile</span><span class="special">&amp;&gt;::</span><span class="identifier">type</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">));</span>
<span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">((</span><span class="identifier">is_same</span><span class="special">&lt;</span><span class="keyword">char</span> <span class="keyword">const</span> <span class="keyword">volatile</span><span class="special">,</span> <span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="keyword">char</span> <span class="keyword">const</span> <span class="keyword">volatile</span><span class="special">&amp;&gt;::</span><span class="identifier">type</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">));</span>
<span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">((</span><span class="identifier">is_same</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">*,</span> <span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">*&amp;&gt;::</span><span class="identifier">type</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">));</span>
<span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">((</span><span class="identifier">is_same</span><span class="special">&lt;</span><span class="keyword">char</span> <span class="keyword">const</span><span class="special">*,</span> <span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="keyword">char</span> <span class="keyword">const</span><span class="special">*&amp;&gt;::</span><span class="identifier">type</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">));</span>
<span class="special">...</span>
<span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">((</span><span class="identifier">is_same</span><span class="special">&lt;</span><span class="keyword">char</span> <span class="keyword">const</span> <span class="keyword">volatile</span><span class="special">*</span> <span class="keyword">const</span> <span class="keyword">volatile</span><span class="special">*</span> <span class="keyword">const</span> <span class="keyword">volatile</span><span class="special">,</span> <span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="keyword">char</span> <span class="keyword">const</span> <span class="keyword">volatile</span><span class="special">*</span> <span class="keyword">const</span> <span class="keyword">volatile</span><span class="special">*</span> <span class="keyword">const</span> <span class="keyword">volatile</span><span class="special">&amp;&gt;::</span><span class="identifier">type</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">));</span>
</pre>
<p>
and the second part provides the library's users with a mechanism to make
the above code work not only for <code class="computeroutput"><span class="keyword">char</span></code>,
<code class="computeroutput"><span class="keyword">int</span></code> or other built-in type,
but for their own types as well:
</p>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">myspace</span><span class="special">{</span>
<span class="keyword">struct</span> <span class="identifier">MyClass</span> <span class="special">{};</span>
<span class="special">}</span>
<span class="comment">// declare this at global scope:</span>
<span class="identifier">BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION</span><span class="special">(</span><span class="identifier">myspace</span><span class="special">::</span><span class="identifier">MyClass</span><span class="special">)</span>
<span class="comment">// transformations on myspace::MyClass now work:</span>
<span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">((</span><span class="identifier">is_same</span><span class="special">&lt;</span><span class="identifier">myspace</span><span class="special">::</span><span class="identifier">MyClass</span><span class="special">,</span> <span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="identifier">myspace</span><span class="special">::</span><span class="identifier">MyClass</span><span class="special">&amp;&gt;::</span><span class="identifier">type</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">));</span>
<span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">((</span><span class="identifier">is_same</span><span class="special">&lt;</span><span class="identifier">myspace</span><span class="special">::</span><span class="identifier">MyClass</span><span class="special">,</span> <span class="identifier">remove_const</span><span class="special">&lt;</span><span class="identifier">myspace</span><span class="special">::</span><span class="identifier">MyClass</span> <span class="keyword">const</span><span class="special">&gt;::</span><span class="identifier">type</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">));</span>
<span class="comment">// etc.</span>
</pre>
<p>
Note that the macro BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION evaluates
to nothing on those compilers that <span class="bold"><strong>do</strong></span> support
partial specialization.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>

View File

@@ -47,6 +47,12 @@
<li class="listitem">
<a class="link" href="reference/is_pod.html" title="is_pod">is_pod</a>
</li>
<li class="listitem">
<a class="link" href="reference/is_nothrow_move_assignable.html" title="is_nothrow_move_assignable">is_nothrow_move_assignable</a>
</li>
<li class="listitem">
<a class="link" href="reference/is_nothrow_move_constructible.html" title="is_nothrow_move_constructible">is_nothrow_move_constructible</a>
</li>
<li class="listitem">
<a class="link" href="reference/has_trivial_constructor.html" title="has_trivial_constructor">has_trivial_constructor</a>
</li>
@@ -90,6 +96,9 @@
<li class="listitem">
<a class="link" href="reference/is_polymorphic.html" title="is_polymorphic">is_polymorphic</a>
</li>
<li class="listitem">
<a class="link" href="reference/is_virtual_base_of.html" title="is_virtual_base_of">is_virtual_base_of</a>
</li>
</ul></div>
<p>
The following traits classes are dependent on one or more of the above:
@@ -117,197 +126,17 @@
<thead><tr>
<th>
<p>
BOOST_IS_UNION(T)
BOOST_ALIGNMENT_OF(T)
</p>
</th>
<th>
<p>
Should evaluate to true if T is a union type
Should evaluate to the alignment requirements of type T
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
BOOST_IS_POD(T)
</p>
</td>
<td>
<p>
Should evaluate to true if T is a POD type
</p>
</td>
</tr>
<tr>
<td>
<p>
BOOST_IS_EMPTY(T)
</p>
</td>
<td>
<p>
Should evaluate to true if T is an empty struct or union
</p>
</td>
</tr>
<tr>
<td>
<p>
BOOST_HAS_TRIVIAL_CONSTRUCTOR(T)
</p>
</td>
<td>
<p>
Should evaluate to true if the default constructor for T is trivial
(i.e. has no effect)
</p>
</td>
</tr>
<tr>
<td>
<p>
BOOST_HAS_TRIVIAL_COPY(T)
</p>
</td>
<td>
<p>
Should evaluate to true if T has a trivial copy constructor (and
can therefore be replaced by a call to memcpy)
</p>
</td>
</tr>
<tr>
<td>
<p>
BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T)
</p>
</td>
<td>
<p>
Should evaluate to true if T has a trivial move constructor (and
can therefore be replaced by a call to memcpy)
</p>
</td>
</tr>
<tr>
<td>
<p>
BOOST_HAS_TRIVIAL_ASSIGN(T)
</p>
</td>
<td>
<p>
Should evaluate to true if T has a trivial assignment operator (and
can therefore be replaced by a call to memcpy)
</p>
</td>
</tr>
<tr>
<td>
<p>
BOOST_HAS_TRIVIAL_MOVE_ASSIGN(T)
</p>
</td>
<td>
<p>
Should evaluate to true if T has a trivial move assignment operator
(and can therefore be replaced by a call to memcpy)
</p>
</td>
</tr>
<tr>
<td>
<p>
BOOST_HAS_TRIVIAL_DESTRUCTOR(T)
</p>
</td>
<td>
<p>
Should evaluate to true if T has a trivial destructor (i.e. ~T()
has no effect)
</p>
</td>
</tr>
<tr>
<td>
<p>
BOOST_HAS_NOTHROW_CONSTRUCTOR(T)
</p>
</td>
<td>
<p>
Should evaluate to true if <code class="computeroutput"><span class="identifier">T</span>
<span class="identifier">x</span><span class="special">;</span></code>
can not throw
</p>
</td>
</tr>
<tr>
<td>
<p>
BOOST_HAS_NOTHROW_COPY(T)
</p>
</td>
<td>
<p>
Should evaluate to true if <code class="computeroutput"><span class="identifier">T</span><span class="special">(</span><span class="identifier">t</span><span class="special">)</span></code> can not throw
</p>
</td>
</tr>
<tr>
<td>
<p>
BOOST_HAS_NOTHROW_ASSIGN(T)
</p>
</td>
<td>
<p>
Should evaluate to true if <code class="computeroutput"><span class="identifier">T</span>
<span class="identifier">t</span><span class="special">,</span>
<span class="identifier">u</span><span class="special">;</span>
<span class="identifier">t</span> <span class="special">=</span>
<span class="identifier">u</span></code> can not throw
</p>
</td>
</tr>
<tr>
<td>
<p>
BOOST_HAS_VIRTUAL_DESTRUCTOR(T)
</p>
</td>
<td>
<p>
Should evaluate to true T has a virtual destructor
</p>
</td>
</tr>
<tr>
<td>
<p>
BOOST_IS_NOTHROW_MOVE_ASSIGN(T)
</p>
</td>
<td>
<p>
Should evaluate to true T has a non-throwing move assign operator.
</p>
</td>
</tr>
<tr>
<td>
<p>
BOOST_IS_NOTHROW_MOVE_CONSTRUCT(T)
</p>
</td>
<td>
<p>
Should evaluate to true T has a non-throwing move constructor.
</p>
</td>
</tr>
<tr>
<td>
<p>
BOOST_IS_ABSTRACT(T)
@@ -356,6 +185,18 @@
</td>
</tr>
<tr>
<td>
<p>
BOOST_IS_EMPTY(T)
</p>
</td>
<td>
<p>
Should evaluate to true if T is an empty struct or union
</p>
</td>
</tr>
<tr>
<td>
<p>
BOOST_IS_ENUM(T)
@@ -368,6 +209,43 @@
</td>
</tr>
<tr>
<td>
<p>
BOOST_IS_FINAL(T)
</p>
</td>
<td>
<p>
Should evaluate to true if T is a class type declared with the final
specifier
</p>
</td>
</tr>
<tr>
<td>
<p>
BOOST_IS_NOTHROW_MOVE_ASSIGN(T)
</p>
</td>
<td>
<p>
Should evaluate to true T has a non-throwing move assign operator.
</p>
</td>
</tr>
<tr>
<td>
<p>
BOOST_IS_NOTHROW_MOVE_CONSTRUCT(T)
</p>
</td>
<td>
<p>
Should evaluate to true T has a non-throwing move constructor.
</p>
</td>
</tr>
<tr>
<td>
<p>
BOOST_IS_POLYMORPHIC(T)
@@ -382,25 +260,156 @@
<tr>
<td>
<p>
BOOST_ALIGNMENT_OF(T)
BOOST_IS_POD(T)
</p>
</td>
<td>
<p>
Should evaluate to the alignment requirements of type T
Should evaluate to true if T is a POD type
</p>
</td>
</tr>
<tr>
<td>
<p>
BOOST_IS_FINAL(T)
BOOST_IS_UNION(T)
</p>
</td>
<td>
<p>
Should evaluate to true if T is a class type declared with the final
specifier
Should evaluate to true if T is a union type
</p>
</td>
</tr>
<tr>
<td>
<p>
BOOST_HAS_NOTHROW_ASSIGN(T)
</p>
</td>
<td>
<p>
Should evaluate to true if <code class="computeroutput"><span class="identifier">T</span>
<span class="identifier">t</span><span class="special">,</span>
<span class="identifier">u</span><span class="special">;</span>
<span class="identifier">t</span> <span class="special">=</span>
<span class="identifier">u</span></code> can not throw
</p>
</td>
</tr>
<tr>
<td>
<p>
BOOST_HAS_NOTHROW_CONSTRUCTOR(T)
</p>
</td>
<td>
<p>
Should evaluate to true if <code class="computeroutput"><span class="identifier">T</span>
<span class="identifier">x</span><span class="special">;</span></code>
can not throw
</p>
</td>
</tr>
<tr>
<td>
<p>
BOOST_HAS_NOTHROW_COPY(T)
</p>
</td>
<td>
<p>
Should evaluate to true if <code class="computeroutput"><span class="identifier">T</span><span class="special">(</span><span class="identifier">t</span><span class="special">)</span></code> can not throw
</p>
</td>
</tr>
<tr>
<td>
<p>
BOOST_HAS_TRIVIAL_ASSIGN(T)
</p>
</td>
<td>
<p>
Should evaluate to true if T has a trivial assignment operator (and
can therefore be replaced by a call to memcpy)
</p>
</td>
</tr>
<tr>
<td>
<p>
BOOST_HAS_TRIVIAL_CONSTRUCTOR(T)
</p>
</td>
<td>
<p>
Should evaluate to true if the default constructor for T is trivial
(i.e. has no effect)
</p>
</td>
</tr>
<tr>
<td>
<p>
BOOST_HAS_TRIVIAL_COPY(T)
</p>
</td>
<td>
<p>
Should evaluate to true if T has a trivial copy constructor (and
can therefore be replaced by a call to memcpy)
</p>
</td>
</tr>
<tr>
<td>
<p>
BOOST_HAS_TRIVIAL_DESTRUCTOR(T)
</p>
</td>
<td>
<p>
Should evaluate to true if T has a trivial destructor (i.e. ~T()
has no effect)
</p>
</td>
</tr>
<tr>
<td>
<p>
BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T)
</p>
</td>
<td>
<p>
Should evaluate to true if T has a trivial move constructor (and
can therefore be replaced by a call to memcpy)
</p>
</td>
</tr>
<tr>
<td>
<p>
BOOST_HAS_TRIVIAL_MOVE_ASSIGN(T)
</p>
</td>
<td>
<p>
Should evaluate to true if T has a trivial move assignment operator
(and can therefore be replaced by a call to memcpy)
</p>
</td>
</tr>
<tr>
<td>
<p>
BOOST_HAS_VIRTUAL_DESTRUCTOR(T)
</p>
</td>
<td>
<p>
Should evaluate to true T has a virtual destructor
</p>
</td>
</tr>

View File

@@ -29,18 +29,15 @@
<p>
All the value based traits in this library conform to MPL's requirements for
an <a href="../../../../../libs/mpl/doc/refmanual/integral-constant.html" target="_top">Integral
Constant type</a>: that includes a number of rather intrusive workarounds
for broken compilers.
Constant type</a>.
</p>
<p>
Purely as an implementation detail, this means that <code class="computeroutput"><a class="link" href="reference/integral_constant.html" title="integral_constant">true_type</a></code>
inherits from <a href="../../../../../libs/mpl/doc/refmanual/bool.html" target="_top"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code></a>,
<code class="computeroutput"><a class="link" href="reference/integral_constant.html" title="integral_constant">false_type</a></code>
inherits from <a href="../../../../../libs/mpl/doc/refmanual/bool.html" target="_top"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code></a>,
and <code class="computeroutput"><a class="link" href="reference/integral_constant.html" title="integral_constant">integral_constant</a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span>
<span class="identifier">v</span><span class="special">&gt;</span></code>
inherits from <a href="../../../../../libs/mpl/doc/refmanual/integral-c.html" target="_top"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">v</span><span class="special">&gt;</span></code></a>
(provided <code class="computeroutput"><span class="identifier">T</span></code> is not <code class="computeroutput"><span class="keyword">bool</span></code>)
Please note that these types no longer inherit from <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code> or
<code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code> etc, and the library will no longer
implicitly include any MPL header. However there is an implicit conversion
from <code class="computeroutput"><span class="identifier">integral_constant</span></code> to the
corresponding MPL types, therefore tag-dispatching that uses MPL types in function
overloads will still work as before.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>

View File

@@ -39,14 +39,6 @@
<p>
<span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9.3.
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler
does not support partial specialization of class-templates then this template
will compile, but the member <code class="computeroutput"><span class="identifier">type</span></code>
will always be the same as type <code class="computeroutput"><span class="identifier">T</span></code>
except where <a class="link" href="../category/transform.html#boost_typetraits.category.transform.broken_compiler_workarounds_">compiler
workarounds</a> have been applied.
</p>
<p>
<span class="bold"><strong>Header:</strong></span> <code class="computeroutput"> <span class="preprocessor">#include</span>
<span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">add_const</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
@@ -124,7 +116,10 @@
</tbody>
</table></div>
</div>
<br class="table-break">
<br class="table-break"><p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> All current compilers
are supported by this trait.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>

View File

@@ -40,14 +40,6 @@
<p>
<span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9.3.
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler
does not support partial specialization of class-templates then this template
will compile, but the member <code class="computeroutput"><span class="identifier">type</span></code>
will always be the same as type <code class="computeroutput"><span class="identifier">T</span></code>
except where <a class="link" href="../category/transform.html#boost_typetraits.category.transform.broken_compiler_workarounds_">compiler
workarounds</a> have been applied.
</p>
<p>
<span class="bold"><strong>Header:</strong></span> <code class="computeroutput"> <span class="preprocessor">#include</span>
<span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">add_cv</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
@@ -127,7 +119,10 @@
</tbody>
</table></div>
</div>
<br class="table-break">
<br class="table-break"><p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> All current compilers
are supported by this trait.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>

View File

@@ -44,14 +44,6 @@
<p>
<span class="bold"><strong>C++ Standard Reference:</strong></span> 20.7.6.2.
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler
does not support partial specialization of class-templates then this template
will compile, but the member <code class="computeroutput"><span class="identifier">type</span></code>
will always be the same as type <code class="computeroutput"><span class="identifier">T</span></code>
except where <a class="link" href="../category/transform.html#boost_typetraits.category.transform.broken_compiler_workarounds_">compiler
workarounds</a> have been applied.
</p>
<p>
<span class="bold"><strong>Header:</strong></span> <code class="computeroutput"> <span class="preprocessor">#include</span>
<span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">add_lvalue_reference</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
@@ -153,7 +145,10 @@
</tbody>
</table></div>
</div>
<br class="table-break">
<br class="table-break"><p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> All current compilers
are supported by this trait.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>

View File

@@ -36,20 +36,12 @@
<span class="bold"><strong>type:</strong></span> The same type as <code class="computeroutput"><span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">type</span><span class="special">*</span></code>.
</p>
<p>
The rationale for this template is that it produces the same type as <code class="computeroutput"><span class="identifier">TYPEOF</span><span class="special">(&amp;</span><span class="identifier">t</span><span class="special">)</span></code>, where
The rationale for this template is that it produces the same type as <code class="computeroutput"><span class="keyword">decltype</span><span class="special">(&amp;</span><span class="identifier">t</span><span class="special">)</span></code>, where
<code class="computeroutput"><span class="identifier">t</span></code> is an object of type <code class="computeroutput"><span class="identifier">T</span></code>.
</p>
<p>
<span class="bold"><strong>C++ Standard Reference:</strong></span> 8.3.1.
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler
does not support partial specialization of class-templates then this template
will compile, but the member <code class="computeroutput"><span class="identifier">type</span></code>
will always be the same as type <code class="computeroutput"><span class="identifier">T</span></code>
except where <a class="link" href="../category/transform.html#boost_typetraits.category.transform.broken_compiler_workarounds_">compiler
workarounds</a> have been applied.
</p>
<p>
<span class="bold"><strong>Header:</strong></span> <code class="computeroutput"> <span class="preprocessor">#include</span>
<span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">add_pointer</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
@@ -126,7 +118,10 @@
</tbody>
</table></div>
</div>
<br class="table-break">
<br class="table-break"><p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> All current compilers
are supported by this trait.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>

View File

@@ -51,14 +51,6 @@
<p>
<span class="bold"><strong>C++ Standard Reference:</strong></span> 8.3.2.
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler
does not support partial specialization of class-templates then this template
will compile, but the member <code class="computeroutput"><span class="identifier">type</span></code>
will always be the same as type <code class="computeroutput"><span class="identifier">T</span></code>
except where <a class="link" href="../category/transform.html#boost_typetraits.category.transform.broken_compiler_workarounds_">compiler
workarounds</a> have been applied.
</p>
<p>
<span class="bold"><strong>Header:</strong></span> <code class="computeroutput"> <span class="preprocessor">#include</span>
<span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">add_reference</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
@@ -135,7 +127,10 @@
</tbody>
</table></div>
</div>
<br class="table-break">
<br class="table-break"><p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> All current compilers
are supported by this trait.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>

View File

@@ -44,12 +44,6 @@
<p>
<span class="bold"><strong>C++ Standard Reference:</strong></span> 20.7.6.2.
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler
does not support partial specialization of class-templates and rvalue references
then this template will compile, but the member <code class="computeroutput"><span class="identifier">type</span></code>
will always be the same as type <code class="computeroutput"><span class="identifier">T</span></code>.
</p>
<p>
<span class="bold"><strong>Header:</strong></span> <code class="computeroutput"> <span class="preprocessor">#include</span>
<span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">add_rvalue_reference</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
@@ -151,7 +145,10 @@
</tbody>
</table></div>
</div>
<br class="table-break">
<br class="table-break"><p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> In the absence of
rvalue-reference support this trait has no effect.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>

View File

@@ -39,14 +39,6 @@
<p>
<span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9.3.
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler
does not support partial specialization of class-templates then this template
will compile, but the member <code class="computeroutput"><span class="identifier">type</span></code>
will always be the same as type <code class="computeroutput"><span class="identifier">T</span></code>
except where <a class="link" href="../category/transform.html#boost_typetraits.category.transform.broken_compiler_workarounds_">compiler
workarounds</a> have been applied.
</p>
<p>
<span class="bold"><strong>Header:</strong></span> <code class="computeroutput"> <span class="preprocessor">#include</span>
<span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">add_volatile</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
@@ -125,7 +117,10 @@
</tbody>
</table></div>
</div>
<br class="table-break">
<br class="table-break"><p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> All current compilers
are supported by this trait.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>

View File

@@ -39,9 +39,6 @@
If B is true, the member typedef type shall equal T. If B is false, the member
typedef type shall equal U.
</p>
<p>
This trait is really just an alias for <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">if_c</span></code>.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>

View File

@@ -130,7 +130,10 @@
</tbody>
</table></div>
</div>
<br class="table-break">
<br class="table-break"><p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> All current compilers
are supported by this trait.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>

View File

@@ -88,6 +88,10 @@
<div class="blockquote"><blockquote class="blockquote"><p>
<code class="computeroutput"><span class="identifier">extent</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span></code>.
</p></blockquote></div>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> All current compilers
are supported by this trait.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>

View File

@@ -107,7 +107,10 @@
</tbody>
</table></div>
</div>
<br class="table-break">
<br class="table-break"><p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> All current compilers
are supported by this trait.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>

View File

@@ -263,7 +263,10 @@
</tbody>
</table></div>
</div>
<br class="table-break">
<br class="table-break"><p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> All current compilers
are supported by this trait.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>

View File

@@ -100,11 +100,10 @@
Type Traits</a>
</p>
<p>
<span class="bold"><strong>Limitation:</strong></span>
<span class="bold"><strong>Compiler Compatibility:</strong></span> Requires working
SFINAE (i.e. BOOST_NO_SFINAE is not set). Only a minority of rather old compilers
do not support this.
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Requires a compiler with working SFINAE.
</li></ul></div>
<p>
<span class="bold"><strong>Known issues:</strong></span>
</p>

View File

@@ -62,6 +62,11 @@
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> Requires working
SFINAE (i.e. BOOST_NO_SFINAE is not set). Only a minority of rather old compilers
do not support this.
</p>
<p>
<span class="bold"><strong>Examples:</strong></span>
</p>
@@ -99,12 +104,6 @@
<span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
Type Traits</a>
</p>
<p>
<span class="bold"><strong>Limitation:</strong></span>
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Requires a compiler with working SFINAE.
</li></ul></div>
<p>
<span class="bold"><strong>Known issues:</strong></span>
</p>

View File

@@ -62,6 +62,11 @@
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> Requires working
SFINAE (i.e. BOOST_NO_SFINAE is not set). Only a minority of rather old compilers
do not support this.
</p>
<p>
<span class="bold"><strong>Examples:</strong></span>
</p>
@@ -99,12 +104,6 @@
<span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
Type Traits</a>
</p>
<p>
<span class="bold"><strong>Limitation:</strong></span>
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Requires a compiler with working SFINAE.
</li></ul></div>
<p>
<span class="bold"><strong>Known issues:</strong></span>
</p>

View File

@@ -62,6 +62,11 @@
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> Requires working
SFINAE (i.e. BOOST_NO_SFINAE is not set). Only a minority of rather old compilers
do not support this.
</p>
<p>
<span class="bold"><strong>Examples:</strong></span>
</p>
@@ -99,12 +104,6 @@
<span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
Type Traits</a>
</p>
<p>
<span class="bold"><strong>Limitation:</strong></span>
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Requires a compiler with working SFINAE.
</li></ul></div>
<p>
<span class="bold"><strong>Known issues:</strong></span>
</p>

View File

@@ -62,6 +62,11 @@
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> Requires working
SFINAE (i.e. BOOST_NO_SFINAE is not set). Only a minority of rather old compilers
do not support this.
</p>
<p>
<span class="bold"><strong>Examples:</strong></span>
</p>
@@ -99,12 +104,6 @@
<span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
Type Traits</a>
</p>
<p>
<span class="bold"><strong>Limitation:</strong></span>
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Requires a compiler with working SFINAE.
</li></ul></div>
<p>
<span class="bold"><strong>Known issues:</strong></span>
</p>

View File

@@ -62,6 +62,11 @@
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> Requires working
SFINAE (i.e. BOOST_NO_SFINAE is not set). Only a minority of rather old compilers
do not support this.
</p>
<p>
<span class="bold"><strong>Examples:</strong></span>
</p>
@@ -99,12 +104,6 @@
<span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
Type Traits</a>
</p>
<p>
<span class="bold"><strong>Limitation:</strong></span>
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Requires a compiler with working SFINAE.
</li></ul></div>
<p>
<span class="bold"><strong>Known issues:</strong></span>
</p>

View File

@@ -62,6 +62,11 @@
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> Requires working
SFINAE (i.e. BOOST_NO_SFINAE is not set). Only a minority of rather old compilers
do not support this.
</p>
<p>
<span class="bold"><strong>Examples:</strong></span>
</p>
@@ -108,12 +113,6 @@
<span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
Type Traits</a>
</p>
<p>
<span class="bold"><strong>Limitation:</strong></span>
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Requires a compiler with working SFINAE.
</li></ul></div>
<p>
<span class="bold"><strong>Known issues:</strong></span>
</p>

View File

@@ -62,6 +62,11 @@
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> Requires working
SFINAE (i.e. BOOST_NO_SFINAE is not set). Only a minority of rather old compilers
do not support this.
</p>
<p>
<span class="bold"><strong>Examples:</strong></span>
</p>
@@ -117,12 +122,6 @@
<span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
Type Traits</a>
</p>
<p>
<span class="bold"><strong>Limitation:</strong></span>
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Requires a compiler with working SFINAE.
</li></ul></div>
<p>
<span class="bold"><strong>Known issues:</strong></span>
</p>

View File

@@ -62,6 +62,11 @@
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> Requires working
SFINAE (i.e. BOOST_NO_SFINAE is not set). Only a minority of rather old compilers
do not support this.
</p>
<p>
<span class="bold"><strong>Examples:</strong></span>
</p>
@@ -105,12 +110,6 @@
<span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
Type Traits</a>
</p>
<p>
<span class="bold"><strong>Limitation:</strong></span>
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Requires a compiler with working SFINAE.
</li></ul></div>
<p>
<span class="bold"><strong>Known issues:</strong></span>
</p>

View File

@@ -62,6 +62,11 @@
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> Requires working
SFINAE (i.e. BOOST_NO_SFINAE is not set). Only a minority of rather old compilers
do not support this.
</p>
<p>
<span class="bold"><strong>Examples:</strong></span>
</p>
@@ -105,12 +110,6 @@
<span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
Type Traits</a>
</p>
<p>
<span class="bold"><strong>Limitation:</strong></span>
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Requires a compiler with working SFINAE.
</li></ul></div>
<p>
<span class="bold"><strong>Known issues:</strong></span>
</p>

View File

@@ -62,6 +62,11 @@
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> Requires working
SFINAE (i.e. BOOST_NO_SFINAE is not set). Only a minority of rather old compilers
do not support this.
</p>
<p>
<span class="bold"><strong>Examples:</strong></span>
</p>
@@ -104,12 +109,6 @@
<span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
Type Traits</a>
</p>
<p>
<span class="bold"><strong>Limitation:</strong></span>
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Requires a compiler with working SFINAE.
</li></ul></div>
<p>
<span class="bold"><strong>Known issues:</strong></span>
</p>

View File

@@ -62,6 +62,11 @@
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> Requires working
SFINAE (i.e. BOOST_NO_SFINAE is not set). Only a minority of rather old compilers
do not support this.
</p>
<p>
<span class="bold"><strong>Examples:</strong></span>
</p>
@@ -104,12 +109,6 @@
<span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
Type Traits</a>
</p>
<p>
<span class="bold"><strong>Limitation:</strong></span>
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Requires a compiler with working SFINAE.
</li></ul></div>
<p>
<span class="bold"><strong>Known issues:</strong></span>
</p>

View File

@@ -62,6 +62,11 @@
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> Requires working
SFINAE (i.e. BOOST_NO_SFINAE is not set). Only a minority of rather old compilers
do not support this.
</p>
<p>
<span class="bold"><strong>Examples:</strong></span>
</p>
@@ -104,12 +109,6 @@
<span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
Type Traits</a>
</p>
<p>
<span class="bold"><strong>Limitation:</strong></span>
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Requires a compiler with working SFINAE.
</li></ul></div>
<p>
<span class="bold"><strong>Known issues:</strong></span>
</p>

View File

@@ -62,6 +62,11 @@
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> Requires working
SFINAE (i.e. BOOST_NO_SFINAE is not set). Only a minority of rather old compilers
do not support this.
</p>
<p>
<span class="bold"><strong>Examples:</strong></span>
</p>
@@ -111,12 +116,6 @@
<span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
Type Traits</a>
</p>
<p>
<span class="bold"><strong>Limitation:</strong></span>
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Requires a compiler with working SFINAE.
</li></ul></div>
<p>
<span class="bold"><strong>Known issues:</strong></span>
</p>

View File

@@ -62,6 +62,11 @@
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> Requires working
SFINAE (i.e. BOOST_NO_SFINAE is not set). Only a minority of rather old compilers
do not support this.
</p>
<p>
<span class="bold"><strong>Examples:</strong></span>
</p>
@@ -99,12 +104,6 @@
<span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
Type Traits</a>
</p>
<p>
<span class="bold"><strong>Limitation:</strong></span>
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Requires a compiler with working SFINAE.
</li></ul></div>
<p>
<span class="bold"><strong>Known issues:</strong></span>
</p>

View File

@@ -62,6 +62,11 @@
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> Requires working
SFINAE (i.e. BOOST_NO_SFINAE is not set). Only a minority of rather old compilers
do not support this.
</p>
<p>
<span class="bold"><strong>Examples:</strong></span>
</p>
@@ -104,12 +109,6 @@
<span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
Type Traits</a>
</p>
<p>
<span class="bold"><strong>Limitation:</strong></span>
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Requires a compiler with working SFINAE.
</li></ul></div>
<p>
<span class="bold"><strong>Known issues:</strong></span>
</p>

View File

@@ -62,6 +62,11 @@
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> Requires working
SFINAE (i.e. BOOST_NO_SFINAE is not set). Only a minority of rather old compilers
do not support this.
</p>
<p>
<span class="bold"><strong>Examples:</strong></span>
</p>
@@ -104,12 +109,6 @@
<span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
Type Traits</a>
</p>
<p>
<span class="bold"><strong>Limitation:</strong></span>
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Requires a compiler with working SFINAE.
</li></ul></div>
<p>
<span class="bold"><strong>Known issues:</strong></span>
</p>

View File

@@ -62,6 +62,11 @@
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> Requires working
SFINAE (i.e. BOOST_NO_SFINAE is not set). Only a minority of rather old compilers
do not support this.
</p>
<p>
<span class="bold"><strong>Examples:</strong></span>
</p>
@@ -102,12 +107,6 @@
<span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
Type Traits</a>
</p>
<p>
<span class="bold"><strong>Limitation:</strong></span>
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Requires a compiler with working SFINAE.
</li></ul></div>
<p>
<span class="bold"><strong>Known issues:</strong></span>
</p>

View File

@@ -62,6 +62,11 @@
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> Requires working
SFINAE (i.e. BOOST_NO_SFINAE is not set). Only a minority of rather old compilers
do not support this.
</p>
<p>
<span class="bold"><strong>Examples:</strong></span>
</p>
@@ -104,12 +109,6 @@
<span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
Type Traits</a>
</p>
<p>
<span class="bold"><strong>Limitation:</strong></span>
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Requires a compiler with working SFINAE.
</li></ul></div>
<p>
<span class="bold"><strong>Known issues:</strong></span>
</p>

View File

@@ -62,6 +62,11 @@
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> Requires working
SFINAE (i.e. BOOST_NO_SFINAE is not set). Only a minority of rather old compilers
do not support this.
</p>
<p>
<span class="bold"><strong>Examples:</strong></span>
</p>
@@ -102,12 +107,6 @@
<span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
Type Traits</a>
</p>
<p>
<span class="bold"><strong>Limitation:</strong></span>
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Requires a compiler with working SFINAE.
</li></ul></div>
<p>
<span class="bold"><strong>Known issues:</strong></span>
</p>

View File

@@ -62,6 +62,11 @@
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> Requires working
SFINAE (i.e. BOOST_NO_SFINAE is not set). Only a minority of rather old compilers
do not support this.
</p>
<p>
<span class="bold"><strong>Examples:</strong></span>
</p>
@@ -105,12 +110,6 @@
<span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
Type Traits</a>
</p>
<p>
<span class="bold"><strong>Limitation:</strong></span>
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Requires a compiler with working SFINAE.
</li></ul></div>
<p>
<span class="bold"><strong>Known issues:</strong></span>
</p>

View File

@@ -62,6 +62,11 @@
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> Requires working
SFINAE (i.e. BOOST_NO_SFINAE is not set). Only a minority of rather old compilers
do not support this.
</p>
<p>
<span class="bold"><strong>Examples:</strong></span>
</p>
@@ -105,12 +110,6 @@
<span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
Type Traits</a>
</p>
<p>
<span class="bold"><strong>Limitation:</strong></span>
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Requires a compiler with working SFINAE.
</li></ul></div>
<p>
<span class="bold"><strong>Known issues:</strong></span>
</p>

View File

@@ -62,6 +62,11 @@
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> Requires working
SFINAE (i.e. BOOST_NO_SFINAE is not set). Only a minority of rather old compilers
do not support this.
</p>
<p>
<span class="bold"><strong>Examples:</strong></span>
</p>
@@ -98,12 +103,6 @@
<span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
Type Traits</a>
</p>
<p>
<span class="bold"><strong>Limitation:</strong></span>
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Requires a compiler with working SFINAE.
</li></ul></div>
<p>
<span class="bold"><strong>Known issues:</strong></span>
</p>

View File

@@ -62,6 +62,11 @@
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> Requires working
SFINAE (i.e. BOOST_NO_SFINAE is not set). Only a minority of rather old compilers
do not support this.
</p>
<p>
<span class="bold"><strong>Examples:</strong></span>
</p>
@@ -98,12 +103,6 @@
<span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
Type Traits</a>
</p>
<p>
<span class="bold"><strong>Limitation:</strong></span>
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Requires a compiler with working SFINAE.
</li></ul></div>
<p>
<span class="bold"><strong>Known issues:</strong></span>
</p>

View File

@@ -62,6 +62,11 @@
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> Requires working
SFINAE (i.e. BOOST_NO_SFINAE is not set). Only a minority of rather old compilers
do not support this.
</p>
<p>
<span class="bold"><strong>Examples:</strong></span>
</p>
@@ -105,12 +110,6 @@
<span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
Type Traits</a>
</p>
<p>
<span class="bold"><strong>Limitation:</strong></span>
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Requires a compiler with working SFINAE.
</li></ul></div>
<p>
<span class="bold"><strong>Known issues:</strong></span>
</p>

View File

@@ -62,6 +62,11 @@
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> Requires working
SFINAE (i.e. BOOST_NO_SFINAE is not set). Only a minority of rather old compilers
do not support this.
</p>
<p>
<span class="bold"><strong>Examples:</strong></span>
</p>
@@ -105,12 +110,6 @@
<span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
Type Traits</a>
</p>
<p>
<span class="bold"><strong>Limitation:</strong></span>
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Requires a compiler with working SFINAE.
</li></ul></div>
<p>
<span class="bold"><strong>Known issues:</strong></span>
</p>

View File

@@ -62,6 +62,11 @@
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> Requires working
SFINAE (i.e. BOOST_NO_SFINAE is not set). Only a minority of rather old compilers
do not support this.
</p>
<p>
<span class="bold"><strong>Examples:</strong></span>
</p>
@@ -104,12 +109,6 @@
<span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
Type Traits</a>
</p>
<p>
<span class="bold"><strong>Limitation:</strong></span>
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Requires a compiler with working SFINAE.
</li></ul></div>
<p>
<span class="bold"><strong>Known issues:</strong></span>
</p>

View File

@@ -35,10 +35,9 @@
otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> Not usable with
compilers that do not support "substitution failure is not an error"
(in which case BOOST_NO_SFINAE will be defined), also known to be broken
with the Borland/Codegear compiler.
<span class="bold"><strong>Compiler Compatibility:</strong></span> Requires working
SFINAE (i.e. BOOST_NO_SFINAE is not set). Only a minority of rather old compilers
do not support this. Also known to be broken with the Borland/Codegear compilers.
</p>
<p>
<span class="bold"><strong>C++ Standard Reference:</strong></span> 12.5.

View File

@@ -62,6 +62,11 @@
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> Requires working
SFINAE (i.e. BOOST_NO_SFINAE is not set). Only a minority of rather old compilers
do not support this.
</p>
<p>
<span class="bold"><strong>Examples:</strong></span>
</p>
@@ -104,12 +109,6 @@
<span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
Type Traits</a>
</p>
<p>
<span class="bold"><strong>Limitation:</strong></span>
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Requires a compiler with working SFINAE.
</li></ul></div>
<p>
<span class="bold"><strong>Known issues:</strong></span>
</p>

View File

@@ -37,16 +37,9 @@
type.
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler
does not support partial-specialization of class templates, then this template
can not be used with function types.
</p>
<p>
Without some (as yet unspecified) help from the compiler, <code class="computeroutput"><span class="identifier">has_nothrow_assign</span></code>
will never report that a class or struct has a non-throwing assignment-operator;
this is always safe, if possibly sub-optimal. Currently (May 2005) only Visual
C++ 8 has the necessary compiler support to ensure that this trait "just
works".
<span class="bold"><strong>Compiler Compatibility:</strong></span> Either a compiler
intrinsic (for example this is provided by Visual C++ 8 or later, plus all
GCC versions in C++11 mode), alternatively support for the C++11 <code class="computeroutput"><span class="keyword">noexcept</span></code> feature.
</p>
<p>
<span class="bold"><strong>Header:</strong></span> <code class="computeroutput"> <span class="preprocessor">#include</span>

View File

@@ -62,6 +62,11 @@
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> Requires working
SFINAE (i.e. BOOST_NO_SFINAE is not set). Only a minority of rather old compilers
do not support this.
</p>
<p>
<span class="bold"><strong>Examples:</strong></span>
</p>
@@ -105,12 +110,6 @@
<span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
Type Traits</a>
</p>
<p>
<span class="bold"><strong>Limitation:</strong></span>
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Requires a compiler with working SFINAE.
</li></ul></div>
<p>
<span class="bold"><strong>Known issues:</strong></span>
</p>

View File

@@ -62,6 +62,11 @@
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<p>
<span class="bold"><strong>Compiler Compatibility:</strong></span> Requires working
SFINAE (i.e. BOOST_NO_SFINAE is not set). Only a minority of rather old compilers
do not support this.
</p>
<p>
<span class="bold"><strong>Examples:</strong></span>
</p>
@@ -105,12 +110,6 @@
<span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
Type Traits</a>
</p>
<p>
<span class="bold"><strong>Limitation:</strong></span>
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Requires a compiler with working SFINAE.
</li></ul></div>
<p>
<span class="bold"><strong>Known issues:</strong></span>
</p>

Some files were not shown because too many files have changed in this diff Show More