質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

デバッグ

デバッグはプログラムのバグや欠陥を検知し、開発中のバグを取り除く為のプロセスを指します。

Q&A

解決済

1回答

1137閲覧

[#define byte unsigned char  unnamed scoped enum is not allowed] の原因が知りたい。

退会済みユーザー

退会済みユーザー

総合スコア0

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

デバッグ

デバッグはプログラムのバグや欠陥を検知し、開発中のバグを取り除く為のプロセスを指します。

0グッド

0クリップ

投稿2021/11/15 06:47

提示コードですが下記のコマンドプロンプトのエラーが出るのですがこれはなぜなのでしょうか?Help.hppの#define byte unsigned char は文法的に間違えていないはずなのですがこれがエラーになる原因がわかりません。コンパイラはg++ です。

Error
error: unnamed scoped enum is not allowed 17 | #define byte unsigned char //・ ^~~~~~~~
コマンドプロンプト
C:\Users\yw325\Desktop\TopViewGame>make g++ -std=c++2a -pthread -c -MMD -MP Game/source/Control.cpp -o Game/obj/Control.o In file included from c:\users\yw325\desktop\topviewgame\framework\header\resource.hpp:14, from Game/source/../header/../../FrameWork/header/Actor.hpp:7, from Game/source/../header/Control.hpp:4, from Game/source/Control.cpp:1: c:\users\yw325\desktop\topviewgame\framework\header\Help.hpp:17:15: error: unnamed scoped enum is not allowed 17 | #define byte unsigned char //・ ^~~~~~~~ c:\users\yw325\desktop\topviewgame\framework\header\Help.hpp:17:15: error: expected identifier before 'unsigned' In file included from c:\mingw\lib\gcc\mingw32\9.2.0\include\c++\pstl\glue_algorithm_defs.h:13, from c:\mingw\lib\gcc\mingw32\9.2.0\include\c++\algorithm:71, from c:\mingw\include\assimp\matrix3x3.inl:57, from c:\mingw\include\assimp\types.h:534, from c:\mingw\include\assimp\importer.hpp:60, from c:\users\yw325\desktop\topviewgame\framework\header\model.hpp:7, from Game/source/../header/../../FrameWork/header/Actor.hpp:9, from Game/source/../header/Control.hpp:4, from Game/source/Control.cpp:1: c:\mingw\lib\gcc\mingw32\9.2.0\include\c++\functional:996:19: error: expected unqualified-id before ':' token 996 | enum class byte : unsigned char; | ^ make: *** [Game/obj/Control.o] エラー 1 C:\Users\yw325\Desktop\TopViewGame>
Help.hpp
#ifndef ___HELP_HPP_ #define ___HELP_HPP_ #include <iostream> #include <glm/glm.hpp> /*######################################################################### # 補助系の関数 説明 ###########################################################################*/ namespace FrameWork { #define PI ( (float)3.14159265359 ) //PI ///////////////////////////////////////////////////////////////////////////////////////////////// #define byte unsigned char //バイト型 ///////////////////////////////////////////////////////////////////////////////////////////////// #define FRAME_RATE ( (int)60 ) //フレームレート #define TRUE 0x01 //true #define FALSE 0x00 //false #define RGBA_COLOR ((float)( 1.0 / 255.0 )) //RGB変換 #define RADIAN ( 360.0 / (PI * 2.0 ) ) //ラジアンを度数 int GetRandom(int start, int end); //乱数を取得 float GetAngle(float r); //ラジアンから度数を取得 glm::vec4 GetGlColor(const glm::vec4 rgb); //0~1までの値を取得 glm::vec2 GetWindowCenter(); //ウインドウの中心座標を取得 } #endif

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

C++-17 より std::byte があるので、#define byte ... のようなことをすると標準ライブラリが壊れます。

#define byte ... を消して std::byte を使うか、using byte = unsigned char; にして名前空間内の型として使えばよいでしょう。

投稿2021/11/15 06:56

編集2021/11/15 06:57
int32_t

総合スコア21695

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問