C++ cli 在CLI/C中创建以下通用IEnumerable++;?

C++ cli 在CLI/C中创建以下通用IEnumerable++;?,c++-cli,C++ Cli,如何在CLI/C++中创建以下通用IEnumerable: IEnumerable<T> Fetch<T>() where T: MyFetch, new() { } IEnumerable Fetch(),其中T:MyFetch,new(){} 我尝试了一些东西,但没有找到一个看起来“合法”且符合我需求的解决方案 我希望函数是类的一部分这将是ref类中的通用函数,看起来类似于: generic <typename T> where T: MyFetch,

如何在CLI/C++中创建以下通用IEnumerable:

IEnumerable<T> Fetch<T>() where T: MyFetch, new() { }
IEnumerable Fetch(),其中T:MyFetch,new(){}
我尝试了一些东西,但没有找到一个看起来“合法”且符合我需求的解决方案


我希望函数是类的一部分

这将是
ref类中的通用函数,看起来类似于:

generic <typename T>
where T: MyFetch, gcnew()
IEnumerable<T>^ Fetch() 
{
}
通用
其中T:MyFetch,gcnew()
IEnumerable^Fetch()
{
}

在where子句中不使用^hat。它命名一个类型,而不是用于变量或参数声明的类型句柄。T type参数已经由generic关键字引入,您不再像在C#中那样将其应用于方法名。因此,它应该是这样的:

generic <typename T>
where T: MyFetch, gcnew()
IEnumerable<T>^ Fetch() {
   // etc...
}
通用
其中T:MyFetch,gcnew()
IEnumerable^Fetch(){
//等等。。。
}

“语法错误:^”,“在“{”之前的意外标记跳过了明显的函数体”-这两个错误在复制泛型时出现。“MyFetch”是一个ref类,包含在内。我做错了什么?@phxlol在没有句柄规范的情况下尝试:
其中T:MyFetch,gcnew()
-是否有效?我已更新以更正。