C ++ \ CLI泛型类,其方法是将间接返回到泛型类型参数

时间:2012-02-15 04:10:01

标签: c++-cli

我有一个用C ++ \ CLI编写的泛型类,它包含一个返回泛型类型参数实例的方法:

generic<typename TWidget> public ref class Factory abstract
{
    public:
       virtual TWidget^ MakeWidget() abstract;
}

我的泛型类型(TWidget)将是一个引用类型,所以我希望我的方法(MakeWidget)返回一个间接到该类型。编译失败,错误

  

错误C3229:'TWidget ^':不允许对泛型类型参数进行间接

当然这不是一个不寻常的情况;我误解了什么吗? (完全可能,因为我很少使用这种语言)。

有关如何安抚编译器并获得所需结果的任何建议吗?

1 个答案:

答案 0 :(得分:2)

因为你的TWidget类型已经是一个引用类型,实际上,编译器会强迫你这样做,你可以简单地将MakeWidget的返回定义为TWidget。