0

CSV ファイルからマップをロードするテンプレート関数を定義します。

template <class T>
bool loadCSV (QString filename, map<T,int> &mapping){
    // function here
}

私はそれを使用しようとします:

map<int, int> bw;
loadCSV<int>((const QString)"mycsv.csv",&bw);

しかし、htis コンパイル時エラーが発生します。

error: no matching function for call to 
‘loadCSV(const QString, std::map<int, int, std::less<int>, std::allocator<std::pair<const int, int> > >*)’

関数呼び出しがいくつかの暗黙の引数を取り込んでいるようですが、エラーとその修正方法がわかりません。何か案は?

4

1 に答える 1

3

アンパサンドを削除します。マップへのポインターを渡したくありません (エラー メッセージの末尾にあるアスタリスクに注意してください)。また、文字列リテラルを明示的にキャストする必要はありません。さらに、コンパイラはテンプレート引数を自動的に推測できる必要があります。

loadCSV("mycsv.csv", bw);
于 2009-06-08T19:31:30.877 に答える