【发布时间】:2020-12-29 13:49:59
【问题描述】:
我有以下 C++ 抽象类,我必须在目标 C 中实现这个抽象类。这个接口需要 std::shared_ptr 和 std::vector。我可以在objectve-C中实现这个类吗?或者有什么替代方法可以在objective-C中实现这个类。 注意:在 Objective-C 中实现这个类的原因是因为我正在为定义的接口编写 iOS Metal 的包装器。而且 iOS metal 没有 C++ API,它只有客观的 API。
class GPUDevice{
public:
virtual ~GPUDevice() {
}
virtual GPU_TYPE getType() = 0;
std::vector<GPU_OPERATIONS> supportedGPUOperations{GPU_OPERATIONS::RENDERING,GPU_OPERATIONS::COMPUTE};
virtual std::shared_ptr<GPUQueue> createQueueForOperation(GPU_OPERATIONS gpuOperations) = 0;
virtual std::shared_ptr<GPURenderPass> createRenderPass(GPUTextureFormats formats) = 0;
virtual std::shared_ptr<GPUPipeLine> createGPUPipeline(const std::string& fragmentShader, const std::string& vertextShader,const std::shared_ptr<GPURenderPass>& renderpass,const std::vector<GPUBinding>& bindings) = 0; };
【问题讨论】:
-
为此您需要
Objective-C++。Objective-C++来源有.mm文件扩展名
标签: c++ ios objective-c metal