我正在尝试创建一个api,其中包含一个类,它将采用任意数据类型的向量和"检索"就是这样。我的主要目标是
这是我的代码:
#include<iostream>
#include<vector>
typedef void* handle;
class p{
public:
template<typename T>
void initialize(std::vector<T> p){
typeC = T;
h = &p;
}
auto returnVec(){
return *(reinterpret_cast<std::vector<typeC *>>(h));
}
private:
using typeC = int ;
handle h;
};
int main(){
std::vector<std::string>v{"Hare","Krishna"};
p i;
i.initialize<std::string>(v);
std::cout<<i.returnVec()[0];
}
现在,我能够存储向量但是为了检索,重新解释强制转换应该需要知道数据类型。所以我想如果我可以使用using
关键字来存储数据类型,我以后可以在reinterpret_cast中使用它来返回一个向量。但我无法这样做。如果出现以下情况,我可以解决这个问题:
using typeC = T
声明影响到
类级别,以便在调用returnVec()
时仍然是typeC
作为数据类型存在。 提前致谢:)