Пацаны, бида!
Информатичка задала домашку на лето. Не могу понять что тут не так:
#include <iostream>
#include <boost/numeric/ublas/io.hpp>
#include <boost/numeric/ublas/vector.hpp>
using namespace std;
template <unsigned size>
class My_Class {
public:
typedef boost::numeric::ublas::c_vector<double, size> c_vec;
const static double x = 10.;
static void F(c_vec arg) {
cout << arg*x << endl;
}
};
const unsigned i = 3;
int main() {
typedef boost::numeric::ublas::c_vector<double, i> c_vec;
c_vec v;
My_Class<i>::F(v);
return EXIT_SUCCESS;
}
Выдает ошибку компоновщика:
[Linker error] undefined reference to My_Class<3u>::x
Если же заменить функцию в My_Class на такую:
static void F(c_vec arg) {
cout << x << endl;
}
То все становится хорошо. Как же быть? Могут поставить двойку в журнал.