テンプレートを使用しようとしていますが、下のコードで何が問題なのか理解できませんでした。テンプレートクラスの特殊化:template-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(問題)