📄 pmf5.c
字号:
// Bug: g++ expanded b->member() multiple times, causing the optimizer to// decide that things weren't related and optimize 'die' into an infinite// loop.struct A { virtual ~A() { } void f (bool) { }};typedef void (A::*pmf_void)();typedef void (A::*pmf_bool)(bool);struct B { ~B() {} pmf_void member() const { return mbr; } pmf_void mbr;};A *a;B *b;void die (bool param) { pmf_bool pmf = (pmf_bool)(b->member()); (a->*pmf)(param);}int main (){ A a2; B b2; b2.mbr = reinterpret_cast<pmf_void>(&A::f); a = &a2; b = &b2; die (true);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -