I noticed that when clamp was used with FVector2D, when one of the values of the test vector exceeds the maximum, the test value suddenly becomes immutable.
I have since fixed the problem in my code by applying clamp to the float values within the struct separately. My original code looked like this, with MousePosition and ScreenDimensions both FVector2D:
void UpdateMousePosition(FVector2D MouseInput)
{
MousePosition = FMath::Clamp(MousePosition + MouseInput, -ScreenDimensions, ScreenDimensions);
}
I noticed that when I moused to the edge of the allowed dimensions, my mouse cursor became stuck at the edge.