Closed sophiapoirier closed 3 years ago
FYI I think that this can be fixed by removing <reverse>
from the inline constructor.
@sophiapoirier, please verify that my commit fixes this, thank you!
Thanks @scheffle! @tom7 who is the one who identified this and develops on Windows.
Sorry, it still gives a syntax error with cfb0556057c1169df1dbbb068415ffed72fa1fbf. I would not claim to fully understand C++, but I think the problem is that the constructor is declared as Iterator<reverse>()
instead of just Iterator()
. Here's a simplified example:
// doesn't compile with g++ 11.2 -std=c++20
template<bool b>
class C {
public:
C<b>();
};
// ok
template<bool b>
class D {
public:
D();
};
And the same example on compiler explorer: https://godbolt.org/z/3rKd8djbx
@tom7 , thanks for your support and the example. I think I've fixed this now. If you find the time, please verify the fix.
Compiles for me with bfd2995ea5edb871eb85fd660ad70b5d7750d219 applied to the master branch. Thanks for fixing!
For the record Forcing GCC-10 on systems with newer default GCC works like this:
export CXX=/usr/bin/g++-10
export CC=/usr/bin/gcc-10
then configure and build.
https://stackoverflow.com/questions/17275348/how-to-specify-new-gcc-path-for-cmake