首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

std::is_convertible

Defined in header <type_traits>

?

?

template< class From, class To > struct is_convertible;

?

(since C++11)

如果虚函数定义To test(){returnstd::declval<From>();}是格式良好的,%28,也就是std::declval<From>()可以转换为To使用隐式转换,或者两者兼而有之FromTo是否符合cv条件?void%29,提供成员常量。value等于true.否则valuefalse.为本支票的目的,使用std::declval在返回语句中不被认为是ODR-使用...

存取检查执行时,就好像是从与任何类型无关的上下文中执行的。只考虑返回语句%28中表达式的即时上下文的有效性,包括对返回类型%29的转换。

FromTo每一个都是一个完整的类型,%28可能是cv-合格%29void,或者一系列未知的界限。否则,行为就没有定义。

辅助变量模板

template< class From, class To > inline constexpr bool is_convertible_v = is_convertible<From, To>::value;

?

(since C++17)

继承自STD:积分[医]常量

成员常数

value static

true if From is convertible to To , false otherwise (public static member constant)

成员函数

operator bool

converts the object to bool, returns value (public member function)

operator() (C++14)

returns value (public member function)

成员类型

Type

Definition

value_type

bool

type

std::integral_constant<bool, value>

注记

给出引用类型、空类型、数组类型和函数类型的定义良好的结果.

二次

代码语言:javascript
复制
#include <iostream>
#include <type_traits>
 
int main() 
{
    class A {};
    class B : public A {};
    class C {};
 
    bool b2a = std::is_convertible<B*, A*>::value;
    bool a2b = std::is_convertible<A*, B*>::value;
    bool b2c = std::is_convertible<B*, C*>::value;
 
    std::cout << std::boolalpha;
    std::cout << b2a << '\n';
    std::cout << a2b << '\n';
    std::cout << b2c << '\n';
}

二次

产出:

二次

代码语言:javascript
复制
true
false
false

二次

另见

二次

*。

代码语言:txt
复制
 ? cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com