[#BloombergLP-bslmf-DetectNestedTrait-09]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslmf.adoc[bslmf]::xref:BloombergLP/bslmf/DetectNestedTrait-00.adoc[DetectNestedTrait]&lt;t&lowbar;TYPE const, t&lowbar;TRAIT&gt;
:relfileprefix: ../../
:mrdocs:

Partial specialization for const&hyphen;qualified types&period;

== Synopsis

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

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class t&lowbar;TYPE,
    template&lt;class&gt; typename t&lowbar;TRAIT&gt;
struct xref:BloombergLP/bslmf/DetectNestedTrait-00.adoc[DetectNestedTrait]&lt;t&lowbar;TYPE const, t&lowbar;TRAIT&gt;
    : &sol;&ast; implementation-defined &ast;&sol;::type
----

== Description

This partial specialization ensures that const&hyphen;qualified types have the same association with a nested trait as their unqualified counterpart&period; Note that we delegate directly to the `&lowbar;Imp` class template, rather than back to the primary template, to avoid an infinite recursion bug on platforms that do not correctly implement &quot;abominable&quot; function types with cv&hyphen;qualifiers&period;

== Base Classes

[cols="1,4"]
|===
| Name| Description
| `&sol;&ast; implementation-defined &ast;&sol;::type`
| 
|===


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