GCC elaborated-type-specifier for a scoped enum must not use the 'class' keyword beheben
English
Deutsch
Problem:
In C++ deklarieren Sie eine enum class wie folgt:
enum_class_warning.txt
enum class Shape : uint8_t {
Circle = 0,
Square = 1
};aber wenn Sie versuchen, das Projekt zu kompilieren, sehen Sie eine Fehlermeldung wie
enum_class_warning_output.txt
include/Shape.hpp:4:6: warning: elaborated-type-specifier for a scoped enum must not use the 'class' keyword
enum class Shape : uint8_t {
~~~~ ^~~~~
-----Lösung
Das Problem hier ist, dass Sie die enum class von einem anderen Typ ableiten – uint8_t in diesem Beispiel – aber dieser Typ wurde nicht deklariert.
Die Lösung besteht darin, den Header zu #includen, in dem der Typ deklariert ist, von dem die enum class erbt.
In unserem Beispiel – für den Typ uint8_t und für viele andere ganzzahlige Typen wie int32_t – können Sie dies tun, indem Sie
include_cstdint.cpp
#include <cstdint>vor der enum class-Deklaration hinzufügen.
Check out similar posts by category:
C/C++, GCC Errors
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow