с чего бы это быстрее? Будет ли это быстрее в C ++, чем написание копии явно, как в C #? Помните, у вас есть только 3 x 32-битные числа, которые вы хотите скопировать из одного места в другое, так что это не совсем подходит для векторизации.
Вероятно, если бы у вас был массив этих структур, вы могли бы получить некоторую скорость, используя векторизованную загрузку / сохранение в развернутом цикле в ассемблере. Но вы не указали этого в вопросе.
Основными издержками здесь, вероятно, является вызов метода, а не присваивание:
static void VecAToB(ref VectorA vectorA, ref VectorB vectorB)
{
vectorB.x = vectorA.a;
vectorB.y = vectorA.b;
vectorB.z = vectorA.c;
}
Вы можете попробовать:
[MethodImpl(MethodImplOptions.AggressiveInlining)]
static void VecAToB(ref VectorA vectorA, ref VectorB vectorB)
{
vectorB.x = vectorA.a;
vectorB.y = vectorA.b;
vectorB.z = vectorA.c;
}