我有一些包装类,用于封装C库,比如SDL。我会把所有细节简化,如果有遗漏的地方,请在评论中告诉我。
例如,我有一个名为
有时候,它可能在一个
现在,如果我想调用一个以
我尝试在我的类中实现这些运算符:
但我仍然会收到“texture_ptr_t到SDL_Texture *的转换不可行”的错误。有人能指点我如何正确解决吗?
例如,我有一个名为
texture_t
的类,它将封装SDL_Texture
。class texture_t
{
public:
...
private:
SDL_Texture *tex;
}
有时候,它可能在一个
shared_ptr
中:typedef std::shared_ptr<texture_t> texture_ptr_t;
现在,如果我想调用一个以
SDL_Texture *
为参数的SDL
函数,我希望我的texture_t
和texture_ptr_t
可以隐式转换为它。我尝试在我的类中实现这些运算符:
operator SDL_Texture *(void);
operator const SDL_Texture *(void) const;
但我仍然会收到“texture_ptr_t到SDL_Texture *的转换不可行”的错误。有人能指点我如何正确解决吗?
std::shared_ptr
没有办法转换为原始指针,而SDL_Texture
也没有办法从这样的指针构造对象。 - Hatted Rooster