[C++11]decltype在泛型编程中的使用举例

Posted Wecccccccc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[C++11]decltype在泛型编程中的使用举例相关的知识,希望对你有一定的参考价值。

关于decltype的应用多出现在泛型编程中,比如我们编写一个类模板,在里面添加遍历容器的函数,操作如下:

代码如下:

#include <iostream>
#include <list>

using namespace std;

template<typename T>
class Container
{
public:
	void printElem(T & t)
	{
		for (m_it = t.begin(); m_it != t.end(); m_it++)
		{
			cout << "value = " << *m_it << endl;
		}
	}

private:
	//T::iterator m_it;//error 定义变量要具体类型,这些写不行
	decltype(T().begin()) m_it;
};

int main()
{
	list<int>ls{ 1,2,3,4,5,6 };
	Container<list<int>>c;
	c.printElem(ls);
	return 0;
}

测试结果:
在这里插入图片描述

以上是关于[C++11]decltype在泛型编程中的使用举例的主要内容,如果未能解决你的问题,请参考以下文章

C# 在泛型中重复使用类型时缩短语法?

泛型类中的数组

如何在泛型类型中使用 linq 包含函数

在泛型方法中返回原始集合类型

泛型编程的术语

C#,如何在泛型方法中访问对象方法