私はenumクラスを宣言しています、定義はcppであり、プログラムはコンパイルしますが、型名(以下インラインメソッド)Intellisense警告:不完全な型は許可されていません(インラインメソッドでは、型の定義はcppにあります)
インラインメソッドをcppファイルに移動することをお勧めしますか? 私はhobyプログラマーですので、ヘッダーファイルに不完全な型のインラインメソッドがあるかどうかわかりません。
ヘッダファイル:
#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のファイルにそれを移動したりしてはなりませんか?なぜ?
Intellisenseの警告は、私の意見では無関係です。彼らは*非常に頻繁に間違っています。コンパイラは何を言いますか? – Nawaz
私のコードは完全に正しいことを意味しますか?コンパイラは何も言わない。 – codekiddy
私はそれを完全に見たことがありません。私が言ったように、なぜあなたのコンパイラは言う? – Nawaz