Note: If the compiler errors out with "You cannot bind an lvalue to an rvalue reference", then simply remove the explicit template parameter from the function call to allow for a const reference type to be deducted. const int32 Value = 0; SetValue(Context, Value, &Reference); // Error: You cannot bind an lvalue to an rvalue reference const int32 Value = 0; SetValue(Context, Value, &Reference); // Fine const int32 Value = 0; SetValue(Context, Value, &Reference); // Fine