Я собираюсь сделать константу Vector
const madness::Vector<double,3> kvec(0.0, 0.0, 1.0);
. Вызвав следующий код
template <typename T>
Vector<T,3> vec(T x, T y, T z) {
Vector<T,3> r; r[0] = x; r[1] = y; r[2] = z;
return r;
}
К сожалению, я получаю сообщение об ошибке
extra.cc:216: error: no matching function for call to ‘madness::Vector<double, 3ul>::Vector(double, double, double)’
note: candidates are: madness::Vector<T, N>::Vector(const madness::Vector<T, N>&) [with T = double, long unsigned int N = 3ul]
note: madness::Vector<T, N>::Vector() [with T = double, long unsigned int N = 3ul]
Не могу не заметить 3ul в сообщении об ошибке.Почему компилятор думает, что моя маленькая невинная тройка - беззнаковая длинна?
Заранее спасибо, Ник