Partial specialization of Function_IsReferenceCompatible for TO_TYPE being const. The evaluation is forwarded to other specializations after stripping the const qualifiers. Note that if FROM_TYPE is const and TO_TYPE is mutable, this partial specialization will not be selected and the resulting evaluation will yield false_type, reflecting the fact that a reference to const type cannot be substituted with a reference to mutable type.

Synopsis

Declared in <bslstl_function_isreferencecompatible.h>

template<
    class FROM_TYPE,
    class TO_TYPE>
struct Function_IsReferenceCompatible<FROM_TYPE, TO_TYPE const>
    : Function_IsReferenceCompatible<bsl::remove_const<FROM_TYPE>::type, TO_TYPE>

Base Classes

Name

Description

Function_IsReferenceCompatible<bsl::remove_const<FROM_TYPE>::type, TO_TYPE>

This metafunction is derived from true_type if a reference to the specified FROM_TYPE parameter type can be substituted for a reference to the specified TO_TYPE parameter type with no loss of information; otherwise, it is derived from false_type. By default, this metafunction yields true_type if FROM_TYPE is the same as TO_TYPE; else it yields false_type. bdef_Function should specialize this template to yield true_type when FROM_TYPE is an instantiation of bdef_Function and TO_TYPE is the corresponding instantiation of bsl::function with the same function prototype. Instantiation will fail if either FROM_TYPE or TO_TYPE are reference types.

Created with MrDocs