我有一个用C ++ \ CLI编写的泛型类,它包含一个返回泛型类型参数实例的方法:
generic<typename TWidget> public ref class Factory abstract
{
public:
virtual TWidget^ MakeWidget() abstract;
}
我的泛型类型(TWidget
)将是一个引用类型,所以我希望我的方法(MakeWidget
)返回一个间接到该类型。编译失败,错误
错误C3229:'TWidget ^':不允许对泛型类型参数进行间接
当然这不是一个不寻常的情况;我误解了什么吗? (完全可能,因为我很少使用这种语言)。
有关如何安抚编译器并获得所需结果的任何建议吗?
答案 0 :(得分:2)
因为你的TWidget类型已经是一个引用类型,实际上,编译器会强迫你这样做,你可以简单地将MakeWidget的返回定义为TWidget。