Is following pattern ok/safe ? Or are there any shortcomings ?
(I also use it for equality operators)

```
Derived& operator=(const Derived& rhs)
{
    static_cast<Base&>(*this) = rhs;
    // ... copy member variables of Derived
    return *this;
}

```