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

std::remove_reference

Defined in header <type_traits>

template< class T > struct remove_reference;

(since C++11)

如果类型T是一个引用类型,提供成员类型type所引用的类型。T.否则typeT...

成员类型

Name

Definition

type

the type referred by T or T if it is not a reference

帮助者类型

template< class T > using remove_reference_t = typename remove_reference<T>::type;

(since C++14)

可能的实施

模板<class T>结构删除[医]引用{tydufT类型;};模板<class T>结构删除[医]引用<T&>{tyHuif T类型;};模板<class T>结构删除[医]参考<T&>{tydufT类型;};

*。

二次

代码语言:javascript
复制
#include <iostream> // std::cout
#include <type_traits> // std::is_same
 
template<class T1, class T2>
void print_is_same() {
  std::cout << std::is_same<T1, T2>() << '\n';
}
 
int main() {
  std::cout << std::boolalpha;
 
  print_is_same<int, int>();    // true
  print_is_same<int, int &>();  // false
  print_is_same<int, int &&>(); // false
 
  print_is_same<int, std::remove_reference<int>::type>();    // true
  print_is_same<int, std::remove_reference<int &>::type>();  // true
  print_is_same<int, std::remove_reference<int &&>::type>(); // true
}

二次

产出:

二次

代码语言:javascript
复制
true
false
false
true
true
true

二次

另见

is_reference (C++11)

checks if a type is either lvalue reference or rvalue reference (class template)

add_lvalue_referenceadd_rvalue_reference (C++11)(C++11)

adds lvalue or rvalue reference to the given type (class template)

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

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

扫码关注腾讯云开发者

领取腾讯云代金券