Jak*_*der 3 c++ pointers operator-keyword
我有这门课:
class fileUnstructuredView {
private:
void* view;
public:
operator void*() {
return view;
}
};
Run Code Online (Sandbox Code Playgroud)
它可以做到这一点:
void* melon = vldf::fileUnstructuredView();
Run Code Online (Sandbox Code Playgroud)
但它不能这样做:
int* bambi = vldf::fileUnstructuredView();
//or
int* bambi = (int*)vldf::fileUnstructuredView();
Run Code Online (Sandbox Code Playgroud)
相反,我必须这样做
int* bambi = (int*)(void*)vldf::fileUnstructuredView();
Run Code Online (Sandbox Code Playgroud)
或为int*创建另一个显式类型转换运算符.
关键是,我想轻松地将类转换为各种指针类型,包括所有基本类型和一些pod结构类型.有没有办法做到这一点,而无需为所有这些创建转换运算符?与我所能想到的最接近的是ZeroMemory方法,它的参数似乎没有任何类型.
是的,您可以拥有转换功能模板.
template <class T>
operator T*() {
return static_cast<T*>(view);
}
Run Code Online (Sandbox Code Playgroud)