I have troubles in compiling with the new GCC 10.1.1 in Fedora 32.
Scanning dependencies of target fmt
[ 5%] Building CXX object external/fmt/CMakeFiles/fmt.dir/src/format.cc.o
[ 11%] Building CXX object external/fmt/CMakeFiles/fmt.dir/src/posix.cc.o
[ 17%] Linking CXX static library libfmt.a
[ 17%] Built target fmt
Scanning dependencies of target black
[ 23%] Building CXX object src/lib/CMakeFiles/black.dir/src/logic/lex.cpp.o
In file included from /home/gabriele/programs/black/src/lib/include/black/logic/lex.hpp:27,
from /home/gabriele/programs/black/src/lib/src/logic/lex.cpp:18:
/home/gabriele/programs/black/src/lib/include/black/logic/formula.hpp:35:8: error: elaborated-type-specifier for a scoped enum must not use the ‘class’ keyword [-Werror]
35 | enum class formula_type : uint8_t {
| ~~~~ ^~~~~
| -----
/home/gabriele/programs/black/src/lib/include/black/logic/formula.hpp:35:27: error: found ‘:’ in nested-name-specifier, expected ‘::’
35 | enum class formula_type : uint8_t {
| ^
| ::
/home/gabriele/programs/black/src/lib/include/black/logic/formula.hpp:35:14: error: ‘formula_type’ has not been declared
35 | enum class formula_type : uint8_t {
| ^~~~~~~~~~~~
/home/gabriele/programs/black/src/lib/include/black/logic/formula.hpp:35:37: error: expected unqualified-id before ‘{’ token
35 | enum class formula_type : uint8_t {
| ^
In file included from /home/gabriele/programs/black/src/lib/include/black/logic/formula.hpp:58,
from /home/gabriele/programs/black/src/lib/include/black/logic/lex.hpp:27,
from /home/gabriele/programs/black/src/lib/src/logic/lex.cpp:18:
/home/gabriele/programs/black/src/lib/include/black/internal/formula/base.hpp:49:34: error: ‘formula_type’ was not declared in this scope
49 | constexpr bool is_boolean_type(formula_type type) {
| ^~~~~~~~~~~~
/home/gabriele/programs/black/src/lib/include/black/internal/formula/base.hpp:53:31: error: ‘formula_type’ was not declared in this scope
53 | constexpr bool is_atom_type(formula_type type) {
| ^~~~~~~~~~~~
/home/gabriele/programs/black/src/lib/include/black/internal/formula/base.hpp:57:32: error: ‘formula_type’ was not declared in this scope
57 | constexpr bool is_unary_type(formula_type type) {
| ^~~~~~~~~~~~
/home/gabriele/programs/black/src/lib/include/black/internal/formula/base.hpp:62:33: error: ‘formula_type’ was not declared in this scope
62 | constexpr bool is_binary_type(formula_type type) {
| ^~~~~~~~~~~~
/home/gabriele/programs/black/src/lib/include/black/internal/formula/base.hpp:69:30: error: expected ‘)’ before ‘t’
69 | formula_base(formula_type t);
| ~ ^~
| )
/home/gabriele/programs/black/src/lib/include/black/internal/formula/base.hpp:72:11: error: ‘formula_type’ does not name a type; did you mean ‘formula_base’?
72 | const formula_type type{};
| ^~~~~~~~~~~~
| formula_base
/home/gabriele/programs/black/src/lib/include/black/internal/formula/base.hpp:72:30: error: extra ‘;’ [-Werror=pedantic]
72 | const formula_type type{};
| ^
| -
/home/gabriele/programs/black/src/lib/include/black/internal/formula/base.hpp: In constructor ‘black::internal::boolean_t::boolean_t(bool)’:
/home/gabriele/programs/black/src/lib/include/black/internal/formula/base.hpp:80:22: error: ‘formula_type’ has not been declared
80 | : formula_base{formula_type::boolean}, value(v) {}
| ^~~~~~~~~~~~
/home/gabriele/programs/black/src/lib/include/black/internal/formula/base.hpp: In constructor ‘black::internal::atom_t::atom_t(const black::internal::any_hashable&)’:
/home/gabriele/programs/black/src/lib/include/black/internal/formula/base.hpp:90:22: error: ‘formula_type’ has not been declared
90 | : formula_base{formula_type::atom}, label{_label} {}
| ^~~~~~~~~~~~
/home/gabriele/programs/black/src/lib/include/black/internal/formula/base.hpp: At global scope:
/home/gabriele/programs/black/src/lib/include/black/internal/formula/base.hpp:99:25: error: expected ‘)’ before ‘t’
99 | unary_t(formula_type t, formula_base *f)
| ~ ^~
| )
/home/gabriele/programs/black/src/lib/include/black/internal/formula/base.hpp:100:24: error: expected unqualified-id before ‘,’ token
100 | : formula_base{t}, operand{f}
| ^
/home/gabriele/programs/black/src/lib/include/black/internal/formula/base.hpp:101:5: error: expected unqualified-id before ‘{’ token
101 | {
| ^
/home/gabriele/programs/black/src/lib/include/black/internal/formula/base.hpp:113:26: error: expected ‘)’ before ‘t’
113 | binary_t(formula_type t, formula_base*f1, formula_base*f2)
| ~ ^~
| )
/home/gabriele/programs/black/src/lib/include/black/internal/formula/base.hpp:114:24: error: expected unqualified-id before ‘,’ token
114 | : formula_base{t}, left{f1}, right{f2}
| ^
/home/gabriele/programs/black/src/lib/include/black/internal/formula/base.hpp:114:34: error: expected unqualified-id before ‘,’ token
114 | : formula_base{t}, left{f1}, right{f2}
| ^
/home/gabriele/programs/black/src/lib/include/black/internal/formula/base.hpp:115:5: error: expected unqualified-id before ‘{’ token
115 | {
| ^
/home/gabriele/programs/black/src/lib/include/black/internal/formula/base.hpp: In function ‘F* black::internal::formula_cast(black::internal::formula_base*)’:
/home/gabriele/programs/black/src/lib/include/black/internal/formula/base.hpp:129:27: error: ‘struct black::internal::formula_base’ has no member named ‘type’
129 | if(F::accepts_type(f->type))
| ^~~~
In file included from /home/gabriele/programs/black/src/lib/include/black/logic/lex.hpp:27,
from /home/gabriele/programs/black/src/lib/src/logic/lex.cpp:18:
/home/gabriele/programs/black/src/lib/include/black/logic/formula.hpp: At global scope:
/home/gabriele/programs/black/src/lib/include/black/logic/formula.hpp:89:35: error: ‘formula_type’ in namespace ‘black::internal’ does not name a type; did you mean ‘formula_base’?
89 | using type = black::internal::formula_type;
| ^~~~~~~~~~~~
| formula_base
/home/gabriele/programs/black/src/lib/include/black/logic/formula.hpp:92:5: error: ‘type’ does not name a type
92 | type formula_type() const;
| ^~~~
/home/gabriele/programs/black/src/lib/include/black/logic/formula.hpp:182:45: error: ‘black::internal::formula::type’ has not been declared
182 | negation = to_underlying(formula::type::negation),
| ^~~~
/home/gabriele/programs/black/src/lib/include/black/logic/formula.hpp:214:44: error: ‘black::internal::formula::type’ has not been declared
214 | conjunction = to_underlying(formula::type::conjunction),
| ^~~~
In file included from /home/gabriele/programs/black/src/lib/include/black/logic/formula.hpp:316,
from /home/gabriele/programs/black/src/lib/include/black/logic/lex.hpp:27,
from /home/gabriele/programs/black/src/lib/src/logic/lex.cpp:18:
/home/gabriele/programs/black/src/lib/include/black/internal/formula/impl.hpp:39:10: error: ISO C++ forbids declaration of ‘formula_base’ with no type [-fpermissive]
39 | inline formula_base::formula_base(formula_type t) : type{t} { }
| ^~~~~~~~~~~~
/home/gabriele/programs/black/src/lib/include/black/internal/formula/impl.hpp:39:10: error: ‘int black::internal::formula_base::formula_base’ is not a static data member of ‘struct black::internal::formula_base’
/home/gabriele/programs/black/src/lib/include/black/internal/formula/impl.hpp:39:37: error: ‘formula_type’ was not declared in this scope; did you mean ‘formula_base’?
39 | inline formula_base::formula_base(formula_type t) : type{t} { }
| ^~~~~~~~~~~~
| formula_base
/home/gabriele/programs/black/src/lib/include/black/internal/formula/impl.hpp:39:63: error: expected unqualified-id before ‘{’ token
39 | inline formula_base::formula_base(formula_type t) : type{t} { }
| ^
/home/gabriele/programs/black/src/lib/include/black/internal/formula/impl.hpp:52:19: error: ‘type’ in ‘class black::internal::formula’ does not name a type
52 | inline formula::type formula::formula_type() const {
| ^~~~
/home/gabriele/programs/black/src/lib/include/black/internal/formula/impl.hpp: In member function ‘black::internal::unary::type black::internal::unary::formula_type() const’:
/home/gabriele/programs/black/src/lib/include/black/internal/formula/impl.hpp:157:47: error: ‘struct black::internal::unary_t’ has no member named ‘type’
157 | return static_cast<unary::type>(_formula->type);
| ^~~~
/home/gabriele/programs/black/src/lib/include/black/internal/formula/impl.hpp: In member function ‘black::internal::binary::type black::internal::binary::formula_type() const’:
/home/gabriele/programs/black/src/lib/include/black/internal/formula/impl.hpp:170:48: error: ‘struct black::internal::binary_t’ has no member named ‘type’
170 | return static_cast<binary::type>(_formula->type);
| ^~~~
/home/gabriele/programs/black/src/lib/include/black/internal/formula/impl.hpp: In static member function ‘static std::optional<_Tp> black::internal::operator_base<H, F, OT>::cast(black::alphabet*, black::internal::formula_base*)’:
/home/gabriele/programs/black/src/lib/include/black/internal/formula/impl.hpp:197:43: error: ‘formula_type’ does not name a type; did you mean ‘formula_base’?
197 | if( ptr && ptr->type == static_cast<formula_type>(OT))
| ^~~~~~~~~~~~
| formula_base
cc1plus: all warnings being treated as errors
make[2]: *** [src/lib/CMakeFiles/black.dir/build.make:83: src/lib/CMakeFiles/black.dir/src/logic/lex.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:282: src/lib/CMakeFiles/black.dir/all] Error 2
make: *** [Makefile:161: all] Error 2