Quad_MX is my code, but the GNU APL code base is Jürgen Sauermann's, so
I'm going to leave it to him what to do about this. I've experimented
with using "> >" and it works with whatever gcc options Jürgen has baked
into the package. It's his decision.
Henrik Moller
On 12/2/24 14:50, Paul Rockwell wrote:
More research indicates that this may indeed be an issue related to
old standards.
See https://en.cppreference.com/w/cpp/language/angle_bracket_hack
It indicates that there were issues with some compilers when using
standards prior to C++11. Two consecutive “greater than” (>>) signs
would be interpreted as the bitwise right shift operator when a
templated type (such as complex<double> was used as the template
parameter (such as vector<complex<double>>). Hence the error and
“suggestion” to put a space between the two “>” signs.
This construct is used in multiple places s done in multiple places in
Quad_MX.hh).
That leads to three possible solutions:
* Modify Quad_MX.hh to insert a space between the two “>” signs as
the compiler is suggesting. That should allow the Mac compilers to
compile without the error. I modified the file as a test and it
seems to fix the problem.
* Require Mac users to set the compiler standard (via configure
options) so that gnu++11 (or later) is used. This shouldn’t be
necessary for gcc users (such as on Linux) as it appears that the
default standard setting is gnu++14 dialect if I read the man page
correctly.
* Modify configure to include -std=gnu++11 in CXXFLAGS in the
makefiles (works for both Apple and gcc compiler suites)
- paul