[#bsl-is_convertible]
= xref:bsl.adoc[bsl]::is&lowbar;convertible
:relfileprefix: ../
:mrdocs:

Meta&hyphen;function for detecting implicit convertibility between types&period;

== Synopsis

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

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class t&lowbar;FROM&lowbar;TYPE,
    class t&lowbar;TO&lowbar;TYPE&gt;
struct is&lowbar;convertible
    : xref:bsl/integral_constant-02.adoc[bsl::integral&lowbar;constant&lt;bool, &colon;&colon;std&colon;&colon;is&lowbar;convertible&lt;typename BloombergLP&colon;&colon;bslmf&colon;&colon;IsConvertible&lowbar;CheckComplete&lt;t&lowbar;FROM&lowbar;TYPE&gt;&colon;&colon;type, typename BloombergLP&colon;&colon;bslmf&colon;&colon;IsConvertible&lowbar;CheckComplete&lt;t&lowbar;TO&lowbar;TYPE&gt;&colon;&colon;type&gt;&colon;&colon;value&gt;]
----

== Description

This `struct` template implements the `is&lowbar;convertible` meta&hyphen;function defined in the C&plus;&plus;11 standard to determine whether the (template parameter) `t&lowbar;FROM&lowbar;TYPE` is implicitly convertible to the (template parameter) `t&lowbar;TO&lowbar;TYPE`&period;

== Base Classes

[cols="1,4"]
|===
| Name| Description
| `xref:bsl/integral_constant-02.adoc[bsl::integral&lowbar;constant&lt;bool, &colon;&colon;std&colon;&colon;is&lowbar;convertible&lt;typename BloombergLP&colon;&colon;bslmf&colon;&colon;IsConvertible&lowbar;CheckComplete&lt;t&lowbar;FROM&lowbar;TYPE&gt;&colon;&colon;type, typename BloombergLP&colon;&colon;bslmf&colon;&colon;IsConvertible&lowbar;CheckComplete&lt;t&lowbar;TO&lowbar;TYPE&gt;&colon;&colon;type&gt;&colon;&colon;value&gt;]`
| Metafunction representing a compile&hyphen;time constant of the specified (template parameter) `t&lowbar;TYPE` with the specified (template parameter) `t&lowbar;VALUE`&period;
|===

== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:bsl/integral_constant-02/type.adoc[`type`] 
| Alias for this `integral&lowbar;constant` specialization&period;
| xref:bsl/integral_constant-02/value_type.adoc[`value&lowbar;type`] 
| Alias for the (template parameter) `t&lowbar;TYPE`&period;
|===


== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:bsl/integral_constant-02/operator_call.adoc[`operator()`] 
| Return a copy of the template argument `t&lowbar;VALUE`&period;
| xref:bsl/integral_constant-02/2conversion.adoc[`operator t&lowbar;TYPE`] 
| Return a copy of the template argument `t&lowbar;VALUE`&period;
|===


== Static Data Members

[cols="1,4"]
|===
| Name| Description
| xref:bsl/integral_constant-02/value.adoc[`value`] 
| The compile&hyphen;time constant value of this metafunction&period;
|===


== Derived Classes

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslstl/IsConvertibleToCString-04.adoc[`IsConvertibleToCString`] 
| This `struct` template implements a meta&hyphen;function to determine if the (template parameter) `t&lowbar;TYPE` is convertible to `const t&lowbar;CHAR&lowbar;TYPE &ast;`&period;
| xref:BloombergLP/bslstl/IsConvertibleToStringView-02.adoc[`IsConvertibleToStringView`] 
| Meta&hyphen;function for detecting types convertible to a string view&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0240.adoc[`UsesBslmaAllocator&lt;bsl::basic&lowbar;string&lt;CHAR&lowbar;TYPE, CHAR&lowbar;TRAITS, ALLOC&gt;&gt;`] 
| Trait indicating `basic&lowbar;string` uses `bslma` allocators&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-02f.adoc[`UsesBslmaAllocator&lt;bsl::map&lt;KEY, VALUE, COMPARATOR, ALLOCATOR&gt;&gt;`] 
| Trait indicating `bsl&colon;&colon;map` uses `bslma` allocators when `ALLOCATOR` allows&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-054.adoc[`UsesBslmaAllocator&lt;bsl::hash&lowbar;set&lt;&lowbar;Value, &lowbar;HashFcn, &lowbar;EqualKey, &lowbar;Alloc&gt;&gt;`] 
| Trait indicating `hash&lowbar;set` uses `bslma` allocators when `&lowbar;Alloc` allows&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0573.adoc[`UsesBslmaAllocator&lt;bsl::hash&lowbar;multimap&lt;&lowbar;Key, &lowbar;Tp, &lowbar;HashFcn, &lowbar;EqualKey, &lowbar;Alloc&gt;&gt;`] 
| Trait indicating `hash&lowbar;multimap` uses `bslma` allocators when `&lowbar;Alloc` allows&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-072.adoc[`UsesBslmaAllocator&lt;bsl::list&lt;VALUE, ALLOCATOR&gt;&gt;`] 
| Trait indicating `bsl&colon;&colon;list` uses `bslma` allocators when `ALLOCATOR` allows&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0877.adoc[`UsesBslmaAllocator&lt;bsl::set&lt;KEY, COMPARATOR, ALLOCATOR&gt;&gt;`] 
| Trait indicating `bsl&colon;&colon;set` uses `bslma` allocators when `ALLOCATOR` allows&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-08b.adoc[`UsesBslmaAllocator&lt;bsl::deque&lt;VALUE&lowbar;TYPE, ALLOCATOR&gt;&gt;`] 
| Trait indicating `deque` uses `bslma` allocators when `ALLOCATOR` allows&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-08c.adoc[`UsesBslmaAllocator&lt;bsl::multimap&lt;KEY, VALUE, COMPARATOR, ALLOCATOR&gt;&gt;`] 
| Trait indicating `bsl&colon;&colon;multimap` uses `bslma` allocators when `ALLOCATOR` allows&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-095.adoc[`UsesBslmaAllocator&lt;bsl::hash&lowbar;multiset&lt;&lowbar;Value, &lowbar;HashFcn, &lowbar;EqualKey, &lowbar;Alloc&gt;&gt;`] 
| Trait indicating `hash&lowbar;multiset` uses `bslma` allocators when `&lowbar;Alloc` allows&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0ba.adoc[`UsesBslmaAllocator&lt;bsl::hash&lowbar;map&lt;&lowbar;Key, &lowbar;Tp, &lowbar;HashFcn, &lowbar;EqualKey, &lowbar;Alloc&gt;&gt;`] 
| Trait indicating `hash&lowbar;map` uses `bslma` allocators when `&lowbar;Alloc` allows&period;
| xref:BloombergLP/bslma/UsesBslmaAllocator-0bce.adoc[`UsesBslmaAllocator&lt;bsl::multiset&lt;KEY, COMPARATOR, ALLOCATOR&gt;&gt;`] 
| Trait indicating `bsl&colon;&colon;multiset` uses `bslma` allocators&period;
|===


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