项目场景:
在模板编程中,会有这样一种情景。假设在一个模板类中,想申明一个模板参数的内嵌类型变量,代码如下:
template<typename T>
struct MyStruct
{
T::EmbedType value;
};
编译器报错:
![提示:这里描述项目中遇到的问题:例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据APP 中接收数据代码:](https://img-blog.csdnimg.cn/8cd0da00309b4ba0a342948f5caeb766.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATXJMX0pK,size_20,color_FFFFFF,t_70,g_se,x_16)
原因分析:
编译器无法推断“EmbedType”:是数据类型。
解决方案:
在申明变量前面添加typename关键字,成功编译,代码如下:
template<typename T>
struct MyStruct
{
typename T::EmbedType value;
};