c++ - C++ 模板的替代方案

标签 c++ objective-c templates

我编写的代码如下所示:

template<typename CocoaWidget>
class Widget : boost::noncopyable
{
private:
  CocoaWidget* mCocoaWidget;

public:
  Widget()
  {
    mCocoaWidget = [[CocoaWidget alloc] init];
  }

  // ...
};

class Button : Widget<NSButton>
{
  // ...
};

但这行不通,因为 Mac 开发中心说:

Objective-C classes, protocols, and categories cannot be declared inside a C++ template

那么我现在最好做什么呢?

最佳答案

你确定你不能这样做(你试过了吗)?

来自 Mac 开发中心的引述说您不能在模板中声明 Objective-C 。然而,您所做的只是在模板内声明一个指向 Objective-C 对象的指针——完全不同的事情,我看不出有什么理由不应该这样做允许(虽然我从未尝试过)。

关于c++ - C++ 模板的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2265022/

相关文章:

iphone - 如何经常检查 GPS 信号强度

ios - 如何在iOS中解析nsmutabledictionary时间?

c++ - 调用模板参数成员函数的result_of

objective-c - UIView 使用 handle 调整大小

css - Tornado :当图像用于背景图像时如何在模板中编写?

c++ - CRTP 类中成员函数的可见性

templates - 访问排序对列表的第一项

c++ - std::is_constant_evaluate 行为

c++ - 使用 CGAL 简化组合映射

c++ - 这个类有什么问题吗?