引用折叠

原创 2016年05月31日 16:15:09

一 引用折叠规则

    1、T& + & = T&

    2、T& + && = T&

    3、T&& + & = T&

    4、T或T&& + && = T&&

二 例子如下

#include "stdafx.h"
#include <iostream>
#include <typeinfo.h>
using namespace std;

typedef int &  lRef;
typedef int && rRef;

typedef const int &  lcRef;
typedef const int && rcRef;

void main()
{
	int a = 10;
	
	// 左值引用
	lRef  b  = a;  // b : int & 
	lRef  &c = a;  // c : int &, & and & = &

	// 右值引用
	rRef d = 10;   // d : int&&     
	rRef&& e = 10; // e : int&&, && and && = &&
	lRef&& f = a;  // f : int&,  &  and && = &
	rRef& g = a;   // g : int&,  && and  & = &

	//int a = 10;

	//// 左值引用
	//lcRef  b = a;   // b : const int & 
	//lcRef  &c = a;  // c : const int &, const & and & = const &

	//// 右值引用
	//rcRef d = 10;   // d : const int&&     
	//rcRef&& e = 10; // e : const int&&, const && and && = &&
	//lcRef&& f = a;  // f : const int&,  const &  and && = &
	//rcRef& g = a;   // g : const int&,  const && and  & = &
}

三 模板函数参数

#include "stdafx.h"
#include <iostream>
#include <typeinfo.h>
using namespace std;

template<typename T>
void FunTemple(T && param)
{

}

void main()
{
	// inParam : int         T : int&        param : int&
	// inParam : int&        T : int&        param : int& 
	// inParam : int&&(无名) T : int         param : int&&
	// inParam : int&&(有名) T : int&        param : int&
	// inParam : const int   T : const int&  param : const int&
	// inParam : const int&  T : const int&  param : const int&
	// inParam : const int&& T : const int&  param : const int&
	
	int inParam = 10;
	FunTemple(inParam);
}




相关文章推荐

如何理解c++中的引用折叠?

感觉上叫引用坍塌好理解点(reference-collapsing rules) 就这样 A& & 变成 A& A& && 变成 A& A&& & 变成 A& A&& && 变成 A...

C++:模板实参推断及引用折叠

1.模板实参推断的概念对于函数模板和类模板,编译器利用调用中的实参函数来确定其模板参数。 从函数实参来确定模板实参的过程,称为模板实参推断。 模板实参的推断和常规的函数实参推断的规则不一样,尤其...

C++11 reference collapsing and perfect forward (引用折叠以及完美转发)

引用折叠原则和完美转发是有联系的,可以说后者是基于前者的某些特性实现的,具体来看一下。 要理解完美转发,需要了解两个知识点: 1. 引用折叠原则(Reference collapsing rule...

Effective Modern C++ 条款28 理解引用折叠

Effective Modern C++ 条款28

eclipse代码折叠/展开之笔记本快捷键设置

eclipse代码折叠/展开

赵雅智_名片夹(4)_Android中listview可折叠伸缩仿手风琴效果(静态)

最近些一个名片夹得app。其中名片夹客户要求做成可折叠伸缩的效果,真是费了好大劲啊~~~啥都不说了看效果图吧~~ 首先姓名显示为listview效果,点击姓名像手风琴效果一样,显示余下的详细信息内容...

【gvim】vim 代码折叠

在vimrc文件中设置折叠方式:如set foldmethod=indent 选定折叠方式后,就可以使用折叠命令进行折叠操作了.常用的折叠方式为indent和marker. indent折...

利用JQuery实现左侧菜单栏可折叠功能

今天给大家介绍一下左侧菜单栏可折叠功能,在后台管理中左侧菜单折叠功能是特别常见的一个功能,基本不管是什么类型的管理后台都会涉及到这个功能的实现。 今天给大家介绍的是二级可折叠菜单的功能,相对一级的菜...

【玩转Eclipse】——eclipse实现代码块折叠-类似于VS中的#region……#endregion

背 景   刚才在写代码的时候,写了十几行可以说是重复的代码:    如果整个方法或类中代码多了,感觉它们太TM占地方了,给读者在阅读代码上造成很大的困难,于是想到能不能把他们“浓缩”成一行,脑子里第...

Android FoldingLayout 折叠布局 原理及实现(二)

摘自:http://itfish.net/article/17420.html 1、概述 在上一篇Android FoldingLayout 折叠布局 原理及实现(一)我们实现了下面的1,2,3...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:引用折叠
举报原因:
原因补充:

(最多只允许输入30个字)