替代C++中的模板

Kar*_*oor 3 c++ templates objective-c

我编写的代码如下所示:

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

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

  // ...
};

class Button : Widget<NSButton>
{
  // ...
};
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为Mac开发中心说:

Objective-C类,协议和类别不能在C++模板中声明

那我现在最好做什么呢?

Mar*_*n B 5

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

Mac Dev Center的引用说你不能在模板中声明Objective-C .但是,你所做的只是在模板中声明一个指向Objective-C对象指针 - 这是一个完全不同的东西,我没有看到为什么它不应被允许的原因(尽管我从未尝试过) ).