This metafunction is derived from bsl::true_type if t_TYPE is an allocator-aware const type, and if t_ANY_TYPE is the same as t_TYPE, minus the cv qualification. This trait is used to enable a constructor overload for a const qualified allocator-aware ValueType taking an rvalue of Optional_Base of the non-const qualified ValueType. Such an overload needs to propagate the allocator.
Declared in <bslstl_optional.h>
template<
class t_TYPE,
class t_ANY_TYPE>
struct Optional_PropagatesAllocator
: bsl::integral_constant<bool, bslma::UsesBslmaAllocator<t_TYPE>::value && bsl::is_const<t_TYPE>::value && bsl::is_same<t_ANY_TYPE, typename bsl::remove_cv<t_TYPE>::type>::value>
| Name | Description |
|---|---|
bsl::integral_constant<bool, bslma::UsesBslmaAllocator<t_TYPE>::value && bsl::is_const<t_TYPE>::value && bsl::is_same<t_ANY_TYPE, typename bsl::remove_cv<t_TYPE>::type>::value> | Metafunction representing a compile-time constant of the specified (template parameter) t_TYPE with the specified (template parameter) t_VALUE. |
| Name | Description |
|---|---|
type | Alias for this integral_constant specialization. |
value_type |
| Name | Description |
|---|---|
operator() | Return a copy of the template argument t_VALUE. |
operator value_type |
| Name |
|---|
value |