2016-10-06 4 views
1

「列挙」型に前方参照を禁じ総エラーメッセージは次のとおりです。は、エラー:ISO C++が

/Users/me/Downloads/test/test.h:70: error: ISO C++ forbids forward references to 'enum' types 
    typedef enum users_type User_Type; 

私はエラーが列挙型についてですけど、私はまだ私の中でこのタイプを使用したいですコード。 いくつかのヒントを教えてもらえますか? THX!

コードは次のとおりです。

enum uers_type{ 
    player, 
    left_player, 
    right_player, 

}; 
typedef enum users_type User_Type; 

は例えば、私のようなこの列挙を使用したい:

bool check(int){ 
if(user == (User_Type)player) 
    return true; 
else 
    return false; 
} 

それらのコードが異なるヘッドです。

+1

表示する必要があります! – Makketronix

+1

なぜ前方参照を使用する必要がありますか? – hyde

+0

また、一般的に言えば、このような場合に* typedef *を使用しなかった方が良いでしょう。 – hyde

答えて

0

私はそれがちょうどタイプミスだと思う。あなたはTEST.Hライン70に何をしているか

... 
enum users_type{ 
... 

代わりの

... 
enum uers_type{ 
... 
+0

しかしQT(ウィンドウのバージョン)では同じコードを実行できます。文法上の間違いだと思う。 – bute

+0

バグはQtとほとんど関係がなく、お使いのプラットフォームで利用可能なC++コンパイラを使用しています。おそらく、Windows上のMSVC ... – CapelliC

+0

私はとても愚かです!問題は解決される。理由は、タイプミスです。私は自信を持って、文法上の間違いはコード内にないと私はまだ窓で動くことができると信じています。どうも! – bute

関連する問題