I am struggling to understand the different behavior shown between move and an rvalue cast
given:
template void f1(T param) { } struc