std::vectorと互換性のある非STLベクトル型があると仮定しましょうoperator std::vector<T>。その要素をデフォルトのコピー構造の代わりにstd::vectorに移動することは可能ですか?
OtherVectorType<SomeClass> f()
{
    OtherVectorType<SomeClass> v;
    v.pushBack(SomeClass());
    v.pushBack(SomeClass());
    v.pushBack(SomeClass());
    return v;
}
std::vector<SomeClass> sv = f();
std :: vectorを作成するときに、SomeClassのmoveコンストラクターを(3回)使用しsvますか?
私は次のようなものを想像します
template<typename T>
std::vector<T>& operator= (std::vector<T>& self, OtherVectorType<T>&& from)
{
    [...]
}
しかし、まだ実用的な解決策は見つかりませんでした。
説明のために、これはstd::vector演算子の定義方法です。
template<typename T> class OtherVectorType
{
    [...]
    operator std::vector<T>() const
    {
        if (!m_size)
            return std::vector<T>();
        return std::vector<T>(reinterpret_cast<T*>(m_pElements),
                              reinterpret_cast<T*>(m_pElements) + m_size);
    }
}