Software Workshop

C++14에서 exchange 알고리즘이 함수로 도입되었다. 그러나 이름과 다르게 이 함수는 move()와 forward()의 조합에 해당할 뿐이어서 첫번째 파라미터의 값을 반환하면서 두번째 파라미터의 값을 첫번째 파라미터 변수에 저장해주는 효과를 가진다.

#include <iostream>
#include <utility>

using namespace std;

int main(void)
{
    int i = 3;
    int j = 5;

    cout << "i=" << i << endl;
    cout << "j=" << j << endl;
    cout << "return of exchange=" << exchange(j, i) << endl;
    cout << "i=" << i << endl;
    cout << "j=" << j << endl;

    return 0;
}
i=3
j=5
return of exchange=5
i=3
j=3