Просто быстрый способ понять предпочтения сообщества в целом: при работе с объектами, такими как Векторы (математические, а не STL) и Матрицы, вы предпочитаете библиотеку, которая:
A) Не изменяет объекты, но вместо этого возвращает копии:
Vec2 Vec2::Add(float x, float y) {
return Vec2(this.x + x, this.y + y);
}
B) Изменяет объекты и возвращает ссылки:
Vec2& Vec2::Add(float x, float y) {
this.x += x;
this.y += y;
return (*this);
}
Я вижу некоторые плюсы и минусы в обоих случаях, но для меня важно то, что метод B будет более эффективным.
Итак, мнения?