当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ is_reference用法及代码示例


在本文中,我们将讨论 C++ STL 中 std::is_reference 模板的工作、语法和示例。

is_reference 是位于 <type_traits> 头文件下的模板。此模板用于检查给定类型 T 是否为引用类型。

该模板是 is_rvalue 和 is_lvalue 的组合,并检查其中一个是否为真,is_reference 的结果是否也为真。

什么是 C++ 中的引用?

引用是已存在变量的别名或其他名称。引用不同于指针 -

  • 因为我们不能将引用设置为空,但指针可以是空指针。
  • 一旦一个引用被初始化为一个对象,它就不能被改变。指针可以随时指向任何其他对象。
  • 引用必须在创建时初始化,因为指针可以在创建后稍后初始化。

可以在要引用的变量之前使用与号 (&) 符号来声明引用。

用法

template <class T> is_reference;

参数

模板只能有类型 T 的参数,并检查给定类型是否为引用类型。

返回值

它返回一个布尔值,如果给定类型是引用类型,则返回 true,如果给定类型不是引用类型,则返回 false。

示例

Input:is_reference<int>::value;
Output:False

Input:is_reference<int&>::value;
Output:True

示例

#include <iostream>
#include <type_traits>
using namespace std;
class TP {
};
int main() {
   cout << boolalpha;
   cout << "Checking for is_reference:";
   cout << "\n class TP:"<<is_reference<TP>::value;
   cout << "\n class TP&:"<<is_polymorphic<TP&>::value;
   cout << "\n class TP&&:"<<is_polymorphic<TP&&>::value;
   return 0;
}

输出

如果我们运行上面的代码,它将生成以下输出 -

Checking for is_reference:
class TP:false
class TP&:false
class TP&&:false

示例

#include <iostream>
#include <type_traits>
using namespace std;
int main() {
   cout << boolalpha;
   cout << "Checking for is_reference:";
   cout << "\n int:"<<is_reference<int>::value;
   cout << "\n int&:"<< is_reference <int&>::value;
   cout << "\n int&&:"<< is_reference <int&&>::value;
   // char
   cout << "\n char:"<<is_reference<char>::value;
   cout << "\n char&:"<< is_reference <char&>::value;
   cout << "\n char&&:"<< is_reference <char&&>::value;
   //float
   cout << "\n float:"<<is_reference<float>::value;
   cout << "\n float&:"<< is_reference <float&>::value;
   cout << "\n float&&:"<< is_reference <float&&>::value;
   //double
   cout << "\n double:"<<is_reference<double>::value;
   cout << "\n double&:"<< is_reference <double&>::value;
   cout << "\n double&&:"<< is_reference <double&&>::value;
   return 0;
}

输出

如果我们运行上面的代码,它将生成以下输出 -

Checking for is_reference:
int:false
int&:true
int&&:true
char:false
char&:true
char&&:true
float:false
float&:true
float&&:true
double:false
double&:true
double&&:true

相关用法


注:本文由纯净天空筛选整理自Sunidhi Bansal大神的英文原创作品 is_reference Template in C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。