mon*_*ing 61 c++ templates struct class
我正在玩模板.我不是要重新发明std :: vector,我试图掌握C++中的模板.
我可以这样做吗?
template <typename T>
typedef struct{
size_t x;
T *ary;
}array;
Run Code Online (Sandbox Code Playgroud)
我想要做的是一个基本的模板化版本:
typedef struct{
size_t x;
int *ary;
}iArray;
Run Code Online (Sandbox Code Playgroud)
如果我使用类而不是struct,它看起来像是有效的,所以使用typedef结构是不可能的?
Bin*_*ier 130
问题是你不能模板化typedef,也不需要在C++中输入typedef结构.
以下将满足您的需求
template <typename T>
struct array {
size_t x;
T *ary;
};
Run Code Online (Sandbox Code Playgroud)
And*_*rey 18
template <typename T>
struct array {
size_t x;
T *ary;
};
Run Code Online (Sandbox Code Playgroud)
您不需要typedef
对类和结构进行显式操作.你需要什么typedef
?此外,typedef
a之后的template<...>
语法错误.只需使用:
template <class T>
struct array {
size_t x;
T *ary;
} ;
Run Code Online (Sandbox Code Playgroud)
您可以模拟结构和类.但是,您无法模板化typedef.所以template<typename T> struct array {...};
工作,但template<typename T> typedef struct {...} array;
没有.请注意,在C++中不需要typedef技巧(你可以在C++中使用没有struct
修饰符的结构).