【发布时间】:2021-03-02 10:14:36
【问题描述】:
我目前是 C++/CLI 的新手,作为练习,我想使用非托管代码创建自定义数组类。我在C++ dll 中创建了一个类,并将其命名为CustomArray。它目前是空白的,只有模板和构造函数存在。我把它放在Unmanaged 命名空间内。这是CustomArray 类的完整代码:-
namespace Unmanaged
{
template <typename T>
class CustomArray
{
private:
T* m_Data;
public:
CustomArray(int size)
{
}
};
}
我在C++/CLI 控制台应用程序中还有一个名为CustomArray 的托管引用类。我想让它使用模板化的CustomArray 非托管代码类。这是Managed 命名空间中CustomArray 类的完整代码:-
namespace Managed
{
generic <typename T>
public ref class CustomArray
{
private:
Unmanaged::CustomArray<T>* array;
public:
CustomArray(int size)
{
}
};
}
但在这里我在声明/定义Unmanaged::CustomArray<T>* 的那一行得到错误。 Visual Studio 说A template argument may not reference a generic type parameter。我不知道这里发生了什么,正如我之前所说的,我是 C++/CLI 的新手。如果有人知道,请帮助我。
【问题讨论】:
标签: c++ templates generics c++-cli