typedef vector<string> vec;

class foo{
vec x,y;
public:
foo( const vec &a, const vec &b ):x(a),y(b){}
foo( const vec &a, vec &&b ): x(a),y(move(b)){}
foo( vec &&a, const vec &b ): x(move(a)),y(b){}
foo( vec &&a, vec &&b ): x(move(a)),y(move(b)){}
};

4つも書くのメンドイんですが、どうにかなりませんか?