cxx-ivars-1.mm

来自「linux下编程用 编译软件」· MM 代码 · 共 43 行

MM
43
字号
// Check if ivars may be accessed via the C++ dot notation.// { dg-do run }// { dg-options "-fno-objc-call-cxx-cdtors" }#include <objc/Object.h>#include <stdlib.h>#define CHECK_IF(expr) if(!(expr)) abort()struct cxx_struct {  int a, b;  void set_values (int _a, int _b = 3) {    a = _a; b = _b;  }  ~cxx_struct (void) {    a = b = 99;  }};@interface Manip : Object {  int c;  cxx_struct s;   // { dg-warning "user-defined destructor" }                  // { dg-warning "constructors and destructors will not be invoked" "" { target *-*-* } 22 }}- (void) manipulate_ivars;@end@implementation Manip- (void) manipulate_ivars {  s.set_values (7);  CHECK_IF (s.a == 7 && s.b == 3);  s.~cxx_struct();  CHECK_IF (s.a == 99 && s.b == 99);}@endint main (void){  Manip *obj = [Manip new];  [obj manipulate_ivars];  [obj free];}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?