[#BloombergLP-bslmf-InvokeResult_MemPtrArgQualifiers-02-checkVolatile-03]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslmf.adoc[bslmf]::xref:BloombergLP/bslmf/InvokeResult_MemPtrArgQualifiers-02.adoc[InvokeResult&lowbar;MemPtrArgQualifiers&lt;t&lowbar;MEMOF&lowbar;CLASS, t&lowbar;ARG&lowbar;TYPE, false&gt;]::checkVolatile
:relfileprefix: ../../../
:mrdocs:

Tag whether the argument is `volatile`&hyphen;qualified (declared only)&period;

== Synopsis

Declared in `&lt;bslmf&lowbar;invokeresult&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class t&lowbar;TP&gt;
static
xref:BloombergLP/bslmf/Tag-0b.adoc[bslmf::Tag&lt;false&gt;]
checkVolatile(t&lowbar;TP& arg);
----

== Description

(Declared but not defined) Return `bslmf&colon;&colon;Tag&lt;true&gt;()` if the argument is `volatile`&hyphen;qualified and `bslmf&colon;&colon;Tag&lt;false&gt;()` otherwise&period; Note that if `t&lowbar;TP` is both const&hyphen; and volatile&hyphen;qualified, it will not match `volatile t&lowbar;TP&amp;`, hence the need for the const overloads&period;

== Parameters

[cols="1,4"]
|===
| Name| Description
| *arg*
| expression whose volatile qualification is being tested
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
