Привет всем У меня есть следующий класс: "Verification.h"статический шаблон constexpr ошибка
#ifndef VERIFICATION_H
#define VERIFICATION_H
#include <vector>
#include <string>
#include <dlib/svm.h>
using namespace dlib;
using namespace std;
class Verification
{
public:
Verification(std::string, std::vector<string>,const int);
virtual ~Verification();
void Verify();
private:
std::vector<std::string> groundTruth;
std::string path;
const int rows;
};
#endif // VERIFICATION_H
Verification.cpp
#include "Verification.h"
Verification::Verification(string p, std::vector<string> gt,const int r):path(p),groundTruth(gt),rows(r)
{
}
Verification::~Verification()
{
//dtor
}
void Verification::Verify()
{
//Load ground truth and build matrix
typedef matrix<double, rows, 9> sample_type;
typedef radial_basis_kernel<sample_type> kernel_type;
}
Проблема: Я пытаюсь инициализировать:
typedef matrix<double, 9,1> sample_type;
Но я получаю следующие erros:
- Verification.cpp | 16 | об ошибке: 'это' не является константным выражением |
- Verification.cpp | 16 | note: в аргументе шаблона для типа 'long int' |
- Verification.cpp | 16 | error: недопустимый тип объявления до ';' маркер |
Как я могу решить эту проблему?
спасибо.
правку на основе ответа ММ:
//Load ground truth and build matrix
typedef matrix<double> data;
data data_type;
data_type.set_size(9,1);
Вы не можете использовать переменную ('rows') для создания экземпляра шаблона. –
Вам нужна константа времени компиляции вместо переменной 'rows' – Hulk
ok Я узнал, что мы можем использовать функцию-член set_size(), можете ли вы увидеть отредактированный вопрос –