|  | Home | Libraries | People | FAQ | More | 
template <class From, class To>
struct is_convertible : public true_type-or-false_type {};
        Inherits: If an imaginary rvalue of type
        From is convertible to type
        To then inherits from true_type,
        otherwise inherits from false_type.
      
Type From must not be an incomplete type.
Type To must not be an incomplete, or function type.
No types are considered to be convertible to array types or abstract-class types.
        This template can not detect whether a converting-constructor is public or not: if type To
        has a private converting constructor
        from type From then instantiating
        is_convertible<From, To>
        will produce a compiler error. For this reason is_convertible
        can not be used to determine whether a type has a public
        copy-constructor or not.
      
This template will also produce compiler errors if the conversion is ambiguous, for example:
struct A {}; struct B : A {}; struct C : A {}; struct D : B, C {}; // This produces a compiler error, the conversion is ambiguous: bool const y = boost::is_convertible<D*,A*>::value;
C++ Standard Reference: 4 and 8.5.
Compiler Compatibility: All current compilers are supported by this trait.
        Header:  #include
        <boost/type_traits/is_convertible.hpp>
        or  #include <boost/type_traits.hpp>
      
Examples:
is_convertible<int, double>inherits fromtrue_type.
is_convertible<const int, double>::typeis the typetrue_type.
is_convertible<int* const, int*>::valueis an integral constant expression that evaluates to true.
is_convertible<int const*, int*>::valueis an integral constant expression that evaluates to false: the conversion would require aconst_cast.
is_convertible<int const&, long>::valueis an integral constant expression that evaluates to true.
is_convertible<int, int>::valueis an integral constant expression that evaluates to true.
is_convertible<T, T>::value_typeis the typebool.