1

既存の Makfile ベースのプロジェクトからインポートされた Eclipse プロジェクトに、次の C++ コードがあります。

#ifndef LAZY_EVAL_FUNCTOR_
#define LAZY_EVAL_FUNCTOR_

#include <vector>
#include <stdlib.h>

namespace libtensor {

//Forward declaration
template<size_t N,typename T> 
class labeled_sparse_btensor;

typedef std::vector<size_t> block_list; 

//Used to erase other size parameters from contract_eval_functor 
template<size_t N,typename T=double>
class lazy_eval_functor {
public:
    virtual void operator()(labeled_sparse_btensor<N,T>& dest) const = 0;

    //For direct tensors
    virtual void operator()(labeled_sparse_btensor<N,T>& dest,std::vector< block_list >& output_block_lists) const = 0;

    virtual ~lazy_eval_functor() {};
};

} // namespace libtensor

#endif /* LAZY_EVAL_FUNCTOR_ */

インクルードが正しく解決されているという事実にもかかわらず、 std::vector が表示される両方の行でエラーが発生します。

Symbol 'vector' could not be resolved. 

std::vector が定義されているインクルード パスを既に追加しました。

ここに画像の説明を入力

私の OS は Mac OS X 10.6 で、gcc のバージョンは gcc 4.2.1 です。

この問題を解決する方法をアドバイスしてください。

編集: std::map など、他の std メンバーに対してこれを行うようです。ヘッダーに「未解決の包含」エラーはありませんが、対応するクラスが見つかりません。

4

0 に答える 0