在线文档教程
C++
应用 | Utilities

std::remove_reference

性病:移除[医]参照系

Defined in header
template< class T > struct remove_reference;(since C++11)

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

成员类型

NameDefinition
typethe type referred by T or T if it is not a reference

帮助者类型

template< class T > using remove_reference_t = typename remove_reference::type;(since C++14)

可能的实施

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

*。

二次

#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 }

二次

产出:

二次

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)

© cppreference.com

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

http://en.cppreference.com/w/cpp/type/Remove[医]参照系