Подтвердить что ты не робот

Есть ли причина, по которой `std:: exchange` не` constexpr`?

std::exchange, введенный в С++ 14, указан следующим образом:

template< class T, class U = T >
T exchange( T& obj, U&& new_value );

Заменяет значение obj на new_value и возвращает старое значение obj.

Здесь возможная реализация из cppreference:

template<class T, class U = T>
T exchange(T& obj, U&& new_value)
{
    T old_value = std::move(obj);
    obj = std::forward<U>(new_value);
    return old_value;
}

Насколько я вижу, ничего не мешает std::exchange быть помеченным как constexpr. Есть ли причина, по которой мне не хватает, почему она не может быть constexpr, или это просто недосмотр?

4b9b3361