A type with this trait is said to have "pointer semantics". That is the type behaves as if it were a fundamental pointer type. The type must define(at a minimum) operator* and operator->. Note that simply providing the above operators does not imply that a type has pointer semantics. This trait is intended for "wrapper" types that behave as pointers. Some examples of such types include std::auto_ptr, and bslma::ManagedPtr. This trait is generally used by objects that invoke the wrapped type.
Declared in <bslalg_typetraithaspointersemantics.h>
struct TypeTraitHasPointerSemantics;
| Name | Description |
|---|---|
Metafunction | Metafunction that evaluates to HasPointerSemantics<TYPE>::type. |
NestedTraitDeclaration | This class template ties the bslalg::TypeTraitHasPointerSemantics trait tag to the bslmf::HasPointerSemantics trait metafunction. |