warning C4407: 在指向成员表示形式的不同指针之间进行转换,编译器可能生成不正确的代码
2017-05-17 00:15
741 查看
转自:http://blog.sina.com.cn/s/blog_6113a8e50101iq1f.html
多继承子类指针转父类指针时,出现警告, 指针会发生偏移,msdn上有两种解决方法
1.// C4407.cpp
// compile with: /W1 /c
struct C1 {};
struct C2 {};
struct C3 : C1, C2 {};
typedef void(C3::*PMF_C3)();
typedef void(C2::*PMF_C2)();
void f1(PMF_C3 pmf) {
(PMF_C2)pmf; // C4407, change type of cast,
// 交换继承顺序(i.e. : C2, C1)
}
2.项目-》属性-》c++->命令行-》添加/vmm
多继承子类指针转父类指针时,出现警告, 指针会发生偏移,msdn上有两种解决方法
1.// C4407.cpp
// compile with: /W1 /c
struct C1 {};
struct C2 {};
struct C3 : C1, C2 {};
typedef void(C3::*PMF_C3)();
typedef void(C2::*PMF_C2)();
void f1(PMF_C3 pmf) {
(PMF_C2)pmf; // C4407, change type of cast,
// 交换继承顺序(i.e. : C2, C1)
}
2.项目-》属性-》c++->命令行-》添加/vmm
相关文章推荐
- warning C4407: 在指向成员表示形式的不同指针之间进行转换,编译器可能生成不正确的代码
- warning C4407: 在指向成员表示形式的不同指针之间进行转换,编译器可能生成不正确的代码
- ppz飞控代码不同姿态表示之间转换理解
- 使用位级操作实现不同形式右移之间的转换
- 基于Android中dp和px之间进行转换的实现代码
- Android利用dimens.xml进行适配,使用代码生成不同的dimens.xml文件
- PCL 不同类型的点云之间进行类型转换
- iOS-地图真实坐标表示形式之间转换(double型,int型 互转)
- Iconv是UNIX 95的iconv()函数的封装形式,它在各种字符代码体系间进行字符串转换。
- 使用PowerDesigner的物理模型生成不同的数据库和转换成OOM模型生成CS实体类代码
- 基于Android中dp和px之间进行转换的实现代码
- PCL 不同类型的点云之间进行类型转换
- c++代码在不同编译器之间的移植的小故事 - 循环变量
- Flex中的CSS: (3)CSS会被编译器转换为什么样的AS代码--派生的另一种表示:#XXX s|TextInput
- Android利用dimens.xml进行适配,使用代码生成不同的dimens.xml文件
- LCC编译器的源程序分析(57)不同目标代码生成的接口结构
- 使用DdlUtils和Ant进行不同数据库之间schema和data的转换
- [转载]LCC编译器的源程序分析(57)不同目标代码生成的接口结构
- Android中dp和px之间进行转换的代码
- Android中dp和px之间进行转换的代码