mirror of
https://github.com/boostorg/type_traits.git
synced 2025-07-31 21:14:37 +02:00
Begin updating docs to match new code.
This commit is contained in:
@@ -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]
|
||||
|
||||
|
@@ -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]
|
||||
|
||||
|
@@ -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]
|
||||
|
||||
|
@@ -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]
|
||||
|
||||
|
@@ -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]
|
||||
|
||||
|
@@ -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]
|
||||
|
||||
|
@@ -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]
|
||||
|
||||
|
@@ -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]
|
||||
|
||||
|
@@ -36,5 +36,7 @@ __header ` #include <boost/type_traits/decay.hpp>` or ` #include <boost/type_tra
|
||||
|
||||
]
|
||||
|
||||
[all_compilers]
|
||||
|
||||
[endsect]
|
||||
|
||||
|
@@ -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]
|
||||
|
||||
|
@@ -33,5 +33,7 @@ __header ` #include <boost/type_traits/floating_point_promotion.hpp>` or ` #incl
|
||||
|
||||
]
|
||||
|
||||
[all_compilers]
|
||||
|
||||
[endsect]
|
||||
|
||||
|
@@ -52,5 +52,7 @@ type use __remove_pointer.]
|
||||
|
||||
]
|
||||
|
||||
[all_compilers]
|
||||
|
||||
[endsect]
|
||||
|
||||
|
@@ -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:]
|
||||
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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.
|
||||
|
||||
|
@@ -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:
|
||||
|
@@ -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>`
|
||||
|
||||
|
@@ -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>`
|
||||
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -102,62 +102,6 @@
|
||||
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></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"><</span><span class="keyword">char</span><span class="special">,</span> <span class="identifier">remove_reference</span><span class="special"><</span><span class="keyword">char</span><span class="special">&>::</span><span class="identifier">type</span><span class="special">>::</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"><</span><span class="keyword">char</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">remove_reference</span><span class="special"><</span><span class="keyword">char</span> <span class="keyword">const</span><span class="special">&>::</span><span class="identifier">type</span><span class="special">>::</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"><</span><span class="keyword">char</span> <span class="keyword">volatile</span><span class="special">,</span> <span class="identifier">remove_reference</span><span class="special"><</span><span class="keyword">char</span> <span class="keyword">volatile</span><span class="special">&>::</span><span class="identifier">type</span><span class="special">>::</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"><</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"><</span><span class="keyword">char</span> <span class="keyword">const</span> <span class="keyword">volatile</span><span class="special">&>::</span><span class="identifier">type</span><span class="special">>::</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"><</span><span class="keyword">char</span><span class="special">*,</span> <span class="identifier">remove_reference</span><span class="special"><</span><span class="keyword">char</span><span class="special">*&>::</span><span class="identifier">type</span><span class="special">>::</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"><</span><span class="keyword">char</span> <span class="keyword">const</span><span class="special">*,</span> <span class="identifier">remove_reference</span><span class="special"><</span><span class="keyword">char</span> <span class="keyword">const</span><span class="special">*&>::</span><span class="identifier">type</span><span class="special">>::</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"><</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"><</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">type</span><span class="special">>::</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"><</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"><</span><span class="identifier">myspace</span><span class="special">::</span><span class="identifier">MyClass</span><span class="special">&>::</span><span class="identifier">type</span><span class="special">>::</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"><</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"><</span><span class="identifier">myspace</span><span class="special">::</span><span class="identifier">MyClass</span> <span class="keyword">const</span><span class="special">>::</span><span class="identifier">type</span><span class="special">>::</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>
|
||||
|
@@ -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>
|
||||
|
@@ -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"><</span><span class="identifier">T</span><span class="special">,</span>
|
||||
<span class="identifier">v</span><span class="special">></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"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">v</span><span class="special">></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>
|
||||
|
@@ -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"><</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">></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>
|
||||
|
@@ -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"><</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">></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>
|
||||
|
@@ -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"><</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">></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>
|
||||
|
@@ -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"><</span><span class="identifier">T</span><span class="special">>::</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">(&</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">(&</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"><</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">></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>
|
||||
|
@@ -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"><</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">></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>
|
||||
|
@@ -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"><</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">></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>
|
||||
|
@@ -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"><</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">></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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -88,6 +88,10 @@
|
||||
<div class="blockquote"><blockquote class="blockquote"><p>
|
||||
<code class="computeroutput"><span class="identifier">extent</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -62,6 +62,11 @@
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></span></code>
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></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>
|
||||
|
@@ -62,6 +62,11 @@
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></span></code>
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></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>
|
||||
|
@@ -62,6 +62,11 @@
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></span></code>
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></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>
|
||||
|
@@ -62,6 +62,11 @@
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></span></code>
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></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>
|
||||
|
@@ -62,6 +62,11 @@
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></span></code>
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></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>
|
||||
|
@@ -62,6 +62,11 @@
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></span></code>
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></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>
|
||||
|
@@ -62,6 +62,11 @@
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></span></code>
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></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>
|
||||
|
@@ -62,6 +62,11 @@
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></span></code>
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></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>
|
||||
|
@@ -62,6 +62,11 @@
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></span></code>
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></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>
|
||||
|
@@ -62,6 +62,11 @@
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></span></code>
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></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>
|
||||
|
@@ -62,6 +62,11 @@
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></span></code>
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></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>
|
||||
|
@@ -62,6 +62,11 @@
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></span></code>
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></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>
|
||||
|
@@ -62,6 +62,11 @@
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></span></code>
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></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>
|
||||
|
@@ -62,6 +62,11 @@
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></span></code>
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></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>
|
||||
|
@@ -62,6 +62,11 @@
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></span></code>
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></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>
|
||||
|
@@ -62,6 +62,11 @@
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></span></code>
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></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>
|
||||
|
@@ -62,6 +62,11 @@
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></span></code>
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></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>
|
||||
|
@@ -62,6 +62,11 @@
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></span></code>
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></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>
|
||||
|
@@ -62,6 +62,11 @@
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></span></code>
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></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>
|
||||
|
@@ -62,6 +62,11 @@
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></span></code>
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></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>
|
||||
|
@@ -62,6 +62,11 @@
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></span></code>
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></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>
|
||||
|
@@ -62,6 +62,11 @@
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></span></code>
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></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>
|
||||
|
@@ -62,6 +62,11 @@
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></span></code>
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></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>
|
||||
|
@@ -62,6 +62,11 @@
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></span></code>
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></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>
|
||||
|
@@ -62,6 +62,11 @@
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></span></code>
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></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>
|
||||
|
@@ -62,6 +62,11 @@
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></span></code>
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></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>
|
||||
|
@@ -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.
|
||||
|
@@ -62,6 +62,11 @@
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></span></code>
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></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>
|
||||
|
@@ -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>
|
||||
|
@@ -62,6 +62,11 @@
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></span></code>
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></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>
|
||||
|
@@ -62,6 +62,11 @@
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></span></code>
|
||||
or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></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
Reference in New Issue
Block a user