📜  C++中的std :: is_convertible模板和示例

📅  最后修改于: 2021-05-30 07:10:10             🧑  作者: Mango

< type_traits >头文件中提供了C++ STL的std :: is_convertible模板。 C++ STL的std :: is_convertible模板用于检查是否可以将任何数据类型A隐式转换为任何数据类型B。它返回布尔值true或false。

头文件:

#include

模板类别:

template< class From, class To >
struct is_convertible;

template< class From, class To >
struct is_nothrow_convertible;

句法:

is_convertible ::value;

参数:它采用A和B两种数据类型:

  • 答:代表要转换的参数。
  • B:代表其中隐式转换参数A的参数。

返回值:

  • True:如果将给定的数据类型A转换为数据类型B。
  • False:如果给定的数据类型A没有转换为数据类型B。

下面是演示C++中std :: is_convertible的程序:

程序:

// C++ program to illustrate
// std::is_convertible example
#include 
#include 
using namespace std;
  
// Given classes
class A {
};
class B : public A {
};
class C {
};
  
// Driver Code
int main()
{
    cout << boolalpha;
  
    // Check if class B is
    // convertible to A or not
    bool BtoA = is_convertible::value;
    cout << BtoA << endl;
  
    // Check if class A is
    // convertible to B or not
    bool AtoB = is_convertible::value;
    cout << AtoB << endl;
  
    // Check if class B is
    // convertible to C or not
    bool BtoC = is_convertible::value;
    cout << BtoC << endl;
  
    // Check if int is convertible
    // to float or not
    cout << "int to float: "
         << is_convertible::value
         << endl;
  
    // Check if int is convertible
    // to const int or not
    cout << "int to const int: "
         << is_convertible::value
         << endl;
  
    return 0;
}
输出:
true
false
false
int to float: true
int to const int: true

参考: http://www.cplusplus.com/reference/type_traits/is_convertible/

要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”