Функции std::tie и std::swap отличаются по своему назначению и использованию.
std::tie создаёт кортеж из ссылок на свои аргументы или экземпляры std::ignore. 4 С её помощью можно, например, привязать элементы кортежа к переменным, которые уже должны быть объявлены, или эффективно поменять значения между переменными без использования временной переменной. 35
std::swap по умолчанию обменивает значения с использованием временной переменной, но для некоторых типов (например, стандартных контейнеров) имеет оптимизированную реализацию. 2
Таким образом, основное отличие в том, что std::tie используется для работы с кортежами и привязки их элементов к переменным, а std::swap — для обмена значениями между переменными.