我想使用模板,但無法理解下面的代碼有什麼問題。模板類專業化:模板ID不匹配任何模板聲明
solve.h
#include "nlp.h"
#include "Ipopt_solve.h"
enum algo_type {IPOPT =1, SQP};
template<int ALG>
class solve
{
public:
solve()
{
}
};
template<>
class solve<IPOPT>
{
public:
solve(nlp*);
private:
Ipopt_solve m_ipopt;
};
solve.cpp
template<>
solve<IPOPT>::solve(nlp* problem): m_ipopt(problem)
{
}
Ipopt_solve
是子類的抽象類TNLP
的。 Ipopt_solve
初始化爲參考nlp
類。
從main.cpp中
nlp problem(&model);
solve<IPOPT> solution(&problem);
我得到的錯誤如下所示。
錯誤:模板id '解決<>' 爲 '解決< 1> ::解決(NLP *)' 不匹配任何模板聲明 解決::解決(NLP *問題):m_ipopt(問題)