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

Reply via email to