C++(11):通过is_same检查类型,decay退化类型

C++11的标准库引入了is_same函数,可以通过其成员value检查类型T1与T2是否相同:

#include 
using namespace std;

template
void print(T t)
{
	if(is_same::value)
	{
		printf("value is:%d\n", t);
	}
	else if(is_same::value)
	{
		printf("value is:%s\n", t);
	}
}

int main(){
	print(1);
	print("hello world");
	return 0;
}

运行程序输出:
value is:1
value is:hello world

对于is_same::value这种写法,还有一种简化的方法:

is_same_v

#include 
using namespace std;

template
void print(T t)
{
	if(is_same_v)
	{
		printf("value is:%d\n", t);
	}
	else
	{
		printf("value is:%s\n", t);
	}
}

int main(){
	print(1);
	print("hello world");
	return 0;
}

编译运行程序:
value is:1
value is:hello world

但是如

你可能感兴趣的:(C/C++,c++)