更改为andReturn()将中断C++;汇编 利用C++编写的编译程序,利用C++编写了编译程序。错误是:

更改为andReturn()将中断C++;汇编 利用C++编写的编译程序,利用C++编写了编译程序。错误是:,c++,ocmock,C++,Ocmock,函数样式转换或类型构造应为“(” 它似乎通过使用运行时而不是编译器来满足相同的条件(值是ObjC对象): #define andReturn(aValue) _andReturn(({ __typeof__(aValue) _val = (aValue); NSValue *_nsval = [NSValue value:&_val withObjCType:@encode(__typeof__(_val))]; if (strcmp(@encode(__typeof(_va

函数样式转换或类型构造应为“(”

它似乎通过使用运行时而不是编译器来满足相同的条件(值是ObjC对象):

#define andReturn(aValue) _andReturn(({
  __typeof__(aValue) _val = (aValue);
  NSValue *_nsval = [NSValue value:&_val withObjCType:@encode(__typeof__(_val))];
  if (strcmp(@encode(__typeof(_val)), "@") == 0) {
      objc_setAssociatedObject(_nsval, "OCMAssociatedBoxedValue", *(__unsafe_unretained id *) (void *) &_val, OBJC_ASSOCIATION_RETAIN);
  }
  _nsval;
}))
它的意图似乎是将对象值保留在传递的
NSValue
中。我会提交一个补丁,但似乎没有通过Github接受拉请求


无论如何,谢谢!

PR在你的宏中漏掉了换行符。
#define
应该在一行内看到定义。附带问题:为什么你说拉请求不被接受?它们肯定是受欢迎的,并且其中许多已经被提出和接受。在pro中有什么需要更改的吗ject设置或文档?为便于阅读,已删除换行符。完整版本正在拉取中request@ErikDoernenburg投稿指南指向论坛的方向,这里和邮件列表。Github上有很多旧的PRs。这只是我从回购协议中得到的解释……无论如何,我确实做了一个PR