一种禁用转换运算符的方法?

edA*_*a-y 9 c++

有没有办法禁用类的转换运算符?假设它是一个库类,我无法修改源代码(或标题).我有时会遇到一个认为聪明的图书馆,并定义愚蠢的转换,有时候只是危险的转换.

例如,在标题中给出此声明,我无法修改:

class TooClever
{
   ...
public:
   operator char const*();
};
Run Code Online (Sandbox Code Playgroud)

有没有办法(允许技巧,即使编译器特定)我可以阻止这个运算符在我的代码中使用?

Fre*_*man 3

创建您自己的后代,添加operator char const*()到其中,但将其设为私有。虽然仍然存在,但这确保了它不会被意外调用(事实上,根本不会被调用)。