- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将 TPCircularBuffer 集成到我的 Swift 项目中。 11.0/xcode 9我在 TPCircularBuffer.h 中收到以下错误:
"No matching function for call to 'atomic_fetch_add'"
文件被拖放到我的项目中,我没有做任何更改。我想知道我是否缺少一面旗帜或其他东西。或者有人知道为什么这对我不起作用吗?
#ifdef __cplusplus
extern "C++" {
#include <atomic>
typedef std::atomic_int atomicInt;
#define atomicFetchAdd(a,b) std::atomic_fetch_add(a,b)
}
#else
#include <stdatomic.h>
typedef atomic_int atomicInt;
#define atomicFetchAdd(a,b) atomic_fetch_add(a,b)
#endif
static __inline__ __attribute__((always_inline)) void TPCircularBufferConsume(TPCircularBuffer *buffer, uint32_t amount) {
buffer->tail = (buffer->tail + amount) % buffer->length;
if ( buffer->atomic ) {
atomicFetchAdd(&buffer->fillCount, -amount);
} else {
buffer->fillCount -= amount;
}
assert(buffer->fillCount >= 0);
}
最佳答案
根本问题是 atomic_fetch_add
在 Swift 中不可用,因此您不能在 .h
文件中使用它,该文件在桥接 header 中导入到 Swift。
您需要用 C 语言编写一个调用 atomic_fetch_add
的包装函数,并更改 TPCircularBuffer.h
以使用该包装函数。您可以在 .h
文件中声明包装函数,但您必须在 .c
文件中实现它,这样它就不会暴露给 Swift 编译器。
关于c++ - TPCircularBuffer 中的错误 - atomic_fetch_add,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47945974/
我们有适用于 iOS 平台的 VoIP 应用程序。我们使用 TPCircularBuffer 进行音频缓冲,它的性能非常好。 所以我想知道是否也可以使用 TPCircularBuffer 进行视频缓冲
我正在尝试将 TPCircularBuffer 集成到我的 Swift 项目中。 11.0/xcode 9我在 TPCircularBuffer.h 中收到以下错误: "No matching fun
我正在尝试在我的类中实现一个循环缓冲区。 如果我在 init 方法中启动它,它会工作,但我想将缓冲区变量声明为私有(private)的,这样我就可以从类中的任何地方访问它: #import "Audi
我正在构建一个 AUGraph,并尝试通过 AVCaptureAudioDataOutput 委托(delegate)方法从输入设备获取音频。 使用 AVCaptureSession 是所解释问题的结
我是一名优秀的程序员,十分优秀!