template <typename E>
class VecExpression{
public:
operator E&(){
return static_cast<E&>(*this);
}
operator E const&() const{
return static_cast<const E&>(*this);
}
};
Run Code Online (Sandbox Code Playgroud)
有人可以向我解释一下这段代码吗?我从未见过这种运算符重载.它的返回类型是什么?它有任何参数吗?我可以看到一个用法,或者可能在源代码中调用它的位置?
VecExpression是一个模板,因此运算符返回E对类的模板类型的const或非const引用.它是一个隐式转换运算符.它不需要参数,只需使用VecExpression<E>并允许它在需要的上下文中使用E.