Рассмотрим следующее:
class Example : boost::noncopyable
{
    HANDLE hExample;
public:
    Example()
    {
        hExample = InitializeHandle();
    }
    ~Example()
    {
        if (hExample == INVALID_HANDLE_VALUE)
        {
            return;
        }
        FreeHandle(hExample);
    }
    Example(Example && other)
        : hExample(other.hExample)
    {
        other.hExample = INVALID_HANDLE_VALUE;
    }
    Example& operator=(Example &&other)
    {
        std::swap(hExample, other.hExample); //?
        return *this;
    }
};
Мое мышление здесь состоит в том, что деструктор будет работать на "другой" в ближайшее время, и поэтому мне не нужно снова реализовывать логику деструктора в операторе присваивания переходов с помощью swap. Но я не уверен, что разумное предположение. Будет ли это "хорошо"?
