一个结构体成员变量的问题
无法引用 “_xxxxxxxx” 的默认构造函数 – 它是已删除的函数C/C++
warning C4624: “_xxxxxx”: 已将析构函数隐式定义为“已删除”已将析构函数隐式定义为“已删除”
结构体和联合体定义如下:
typedef struct _tagMqttInfo
{
string strGatewayId;
TMqttDataTransfer tMqttDataTransfer; (自定义结构体)
TMqttDataTypeStatus tMqttDataTypeStatus; (自定义结构体)
}TMqttInfo;
typedef struct _tagRPC
{
/* data */
}TRPC;
typedef struct _TagDataTransfer
{
int type;
union
{
TMqttInfo mqtt;
TRPC rpc;
}typeInfo;
}TDataTransfer;
vs2017编译使用该结构体的静态库会出现如下警告: 已将析构函数隐式定义为“已删除”
编写测试用例会出现 如下错误:
linux环境下编会出现如此错误
查找错误是
结构体里面的有 string对象 ,然后这个结构体嵌套在结构体中。
修改如下:
不能有string 对象 ,修改成char 数组就正常了。