2004 年以来、誰も触れていないプログラムを維持しなければなりません。
class CSolver
{
...
ClauseIdx add_clause (int * lits, int n_lits);
}
void and2 (CSolver & solver)
{
vector <int> lits;
...
solver.add_clause(lits.begin(), lits.size());
}
コンパイラは次のように不平を言います。
エラー: 'CSolver::add_clause(__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, size_t)' への呼び出しに一致する関数がありません</p>
キャストしてみる
solver.add_clause((int*)lits.begin(), lits.size());
しかし、まだ不満があります:
エラー: 型 '__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >' から型 'int*' へのキャストが無効です
CSolverのインターフェースを変更するとプログラム全体が変更されるため、これに関する簡単な修正を探したいと思います。
前もって感謝します。