template-1.mm
来自「用于进行gcc测试」· MM 代码 · 共 50 行
MM
50 行
/* Test for using ObjC classes as C++ template parameters. *//* Author: Ziemowit Laski <zlaski@apple.com>. *//* { dg-do run } */#include <objc/Object.h>#include <stdlib.h>#define CHECK_IF(expr) if(!(expr)) abort()@interface Base: Object- (int) meth;@end@interface Derived: Base - (int) meth; @endstatic int count = 0;template <class T> struct Templ{ T *m; int i; Templ(): i(55), m([[T alloc] init]) { count++; } ~Templ() { [m free]; count--; }};@implementation Base- (int) meth { return 333; }@end@implementation Derived- (int) meth { return 666; }@end int main (void) { CHECK_IF(count == 0); { Templ<Derived> derived; CHECK_IF(derived.i == 55 && count == 1); Templ<Base> base; CHECK_IF(base.i == 55 && count == 2); CHECK_IF([base.m meth] == 333); CHECK_IF([derived.m meth] == 666); } CHECK_IF(count == 0); return 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?