Java教程

在模板类或者模板函数声明模板参数的内嵌类型时,编译器报错(typename关键字的作用之一)

本文主要是介绍在模板类或者模板函数声明模板参数的内嵌类型时,编译器报错(typename关键字的作用之一),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

项目场景:

在模板编程中,会有这样一种情景。假设在一个模板类中,想申明模板参数的内嵌类型,代码如下:

 template<typename T>
 struct MyStruct
 {
	  T::EmbedType value;
 };

编译器报错:

提示:这里描述项目中遇到的问题:例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据APP 中接收数据代码:


原因分析:

编译器无法推断“EmbedType”:是数据类型。

解决方案:

在申明变量前面添加typename关键字,成功编译,代码如下:

 template<typename T>
 struct MyStruct
 {
	 typename T::EmbedType value;
 };
这篇关于在模板类或者模板函数声明模板参数的内嵌类型时,编译器报错(typename关键字的作用之一)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!