Re[3]: был 0.0, а стал массив из нулей.
От: Кодт Россия  
Дата: 13.04.10 17:20
Оценка:
Здравствуйте, avalanche2010, Вы писали:

A>вектор всегда имеет размерность 10 и он известен уже на этапе компиляции. саму функцию мы используем в одном месте, чтобы посчитать скаляр double, а в другом хотим использовать для вектора. теоретически могут быть и матрицы, но пока это совсем не нужно.


Я так понимаю, арифметика над векторами — покомпонентная. Тогда можно взглянуть в сторону std::valarray. Над ним уже определены всякие операции.
Дальнейшие пути:
1) Использовать только valarray<double> двух размерностей — 1 и 10. Параметризовать (хоть в шаблоне, хоть в рантайме) функцию этой размерностью.
2) Параметризовать функцию типом double / valarray<double> и словарём примитивов (нулевое значение 0.0 / valarray<double>(10), единичное значение 1 / valarray<double>(1.0,10), и т.д.)
3) Написать собственный класс, унаследованный от valarray, который конструирует себя с правильной размерностью. Но, боюсь, писанины и несовместимостей здесь будет очень много.
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.