BloombergLP::bslmf::HasPointerSemantics

Metafunction indicating whether the (template parameter) t_TYPE has pointer-like semantics.

Synopsis

Declared in <bslmf_haspointersemantics.h>

template<class t_TYPE>
struct HasPointerSemantics
    : bsl::integral_constant<bool, bsl::is_pointer<t_TYPE>::value || DetectNestedTrait<t_TYPE, HasPointerSemantics>::value>

Base Classes

NameDescription
bsl::integral_constant<bool, bsl::is_pointer<t_TYPE>::value || DetectNestedTrait<t_TYPE, HasPointerSemantics>::value>Metafunction representing a compile-time constant of the specified (template parameter) t_TYPE with the specified (template parameter) t_VALUE.

Type Aliases

NameDescription
type Alias for this integral_constant specialization.
value_type Alias for the (template parameter) t_TYPE.

Member Functions

NameDescription
operator() Return a copy of the template argument t_VALUE.
operator t_TYPE Return a copy of the template argument t_VALUE.

Static Data Members

NameDescription
value The compile-time constant value of this metafunction.

Specializations

NameDescription
HasPointerSemantics<bslma::ManagedPtr<TARGET_TYPE>> Trait specialization: ManagedPtr has pointer semantics.
HasPointerSemantics<std::auto_ptr<t_POINTED_TO_TYPE>>
HasPointerSemantics<bsl::shared_ptr<ELEMENT_TYPE>> Trait specialization: shared_ptr has pointer semantics.
HasPointerSemantics<std::shared_ptr<t_POINTED_TO_TYPE>> Trait specialization: std::shared_ptr has pointer semantics.
HasPointerSemantics<std::unique_ptr<t_POINTED_TO_TYPE>> Trait specialization: std::unique_ptr has pointer semantics.