[#mrdocs-dereferenceable] = xref:mrdocs.adoc[mrdocs]::dereferenceable :relfileprefix: ../ :mrdocs: Determine if a type is dereferenceable == Synopsis Declared in `<mrdocs/Support/Concepts.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> concept dereferenceable = requires(T const& t) { { static_cast<bool>(t) }; { *t }; }; ---- == Description This concept checks if a type can be dereferenced to a value it represents and converted to a boolean value that represents if the object is in a valid state. Examples of such types are std::optional, std::unique_ptr, std::shared_ptr, Polymorphic, pointers, etc. [.small]#Created with https://www.mrdocs.com[MrDocs]#