列挙型クラスを前方宣言しました。定義は cpp にあり、プログラムはコンパイルされますが、型名の下に赤い「波」が表示されます (以下のインライン メソッド)。
そのインライン化されたメソッドを cpp ファイルに移動することをお勧めしますか? 私は趣味のプログラマーなので、ヘッダー ファイルに不完全な型を持つこのインライン メソッドが問題ないかどうかはわかりません。
ヘッダファイル:
#include <map>
using std::map;
enum class MinimumName;
class Limits
{
public:
Limits(TableLayout layout);
void SetMinimum(MinimumName name, unsigned int minimum);
// other stuff irrelevant
private:
typedef map<MinimumName, unsigned int> MinContainer;
MinContainer::iterator Miniter;
MinContainer Minimums;
};
//intelisence warning here in argument list
inline void Limits::SetMinimum(MinimumName name, unsigned int minimum)
{ // incomplete type is not allowed
Miniter = Minimums.find(name);
Miniter->second = minimum;
}
cpp ファイル
enum class MinimumName
{
Inside,
Outside,
Table
};
それをcppファイルに移動しますか?なぜ?