模板中的返回类型



我有一个模板类,方法如下:

operator T*() const { 
return (T*)foo();
}

它返回什么,我如何调用这个方法?

这是一个用户定义的转换。这意味着它隐式地将类模板实例化的对象转换为不同的类型。在本例中,另一种类型是T*

下面是一个做作的例子:

template <typename T>
struct A {
T* data;
operator T*() const { // conversion to T*
return data;
}
};
int main() {
int i = 42;
A<int> a{&i};
int* p = a; // A converts to int* via `operator int*()`
// p points at i
}

上面的链接包含更多的示例和细节。

最新更新