[#BloombergLP-bslalg-TypeTraitHasPointerSemantics] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslalg.adoc[bslalg]::TypeTraitHasPointerSemantics :relfileprefix: ../../ :mrdocs: 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. == Synopsis Declared in `<bslalg_typetraithaspointersemantics.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct TypeTraitHasPointerSemantics; ---- == Types [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslalg/TypeTraitHasPointerSemantics/Metafunction.adoc[`Metafunction`] | Metafunction that evaluates to `HasPointerSemantics<TYPE>::type`. | xref:BloombergLP/bslalg/TypeTraitHasPointerSemantics/NestedTraitDeclaration.adoc[`NestedTraitDeclaration`] | This class template ties the `bslalg::TypeTraitHasPointerSemantics` trait tag to the `bslmf::HasPointerSemantics` trait metafunction. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#