This function use forward:
Should it not use move instead?
I used forward in one of my classes, that also caused a copy so i switch to move which did the desired action.
Can somebody explain why the code doesn't do the right thing?
template<class _Other1,
class _Other2>
pair(pair<_Other1, _Other2>&& _Right,
typename enable_if<is_convertible<_Other1, _Ty1>::value
&& is_convertible<_Other2, _Ty2>::value,
void>::type ** = 0)
: first(_STD forward<_Other1>(_Right.first)),
second(_STD forward<_Other2>(_Right.second))
{ // construct from moved compatible pair
}