Есть ли строгая гарантия безопасности исключений в операторе присваивания в коде ниже?
struct X {
};
struct Some { std::vector<X> vec;
Some() { }
Some(const Some& rhs):vec(rhs.vec) { }
Some& operator=(const Some& rhs) { Some temp(rhs); vec.swap(temp.vec); }
};