研究のために有限要素コードを実装しようとしています。名前でマテリアルにアクセスできるように、マテリアルとその名前を関連付けるマップを作成する必要があります。メイン クラスのヘッダー ファイルから、次のように定義します。
/// Friend class definition for the materials
friend class Material;
/// Class definition for the materials
class Material;
/// Creates a dictionary of elementsets vs material names
std::map<std::string,std::string> _material_assignment;
/// Container to hold the material names of all the materials
std::map<std::string,Material> _materials;
メイン クラスの実装がコンパイルされます。ただし、メイクファイルがメインファイルに到達すると、次のエラーが発生します
Error: 'std::pair<_T1, _T2>::second' has incomplete type
_T2 second; /// @c second is a copy of the second object
^
In file included from src/main.C:5:0:
src/diff_code.h:228:9: error: forward declaration of 'class DiffCode::Material'
class Material;
どうすればこれを回避できますか。重要なコード クラスのヘッダー ファイルをすべて含むコードの他のすべてのファイルをコンパイルしています。
ありがとう!