As a work around, you may use (which works for gcc 4.7.1, gcc 4.8.1 and clang 3.4):
void swap(A& other) noexcept(noexcept(std::declval<decltype(A::vec)&>().swap(std::declval<decltype(A::vec)&>())))
or
void swap(A& other) noexcept(noexcept(vec.swap(vec)))
I think the problem is other.vec
...