URL:
  <https://savannah.gnu.org/bugs/?64486>

                 Summary: node.cpp: "if (*p == spec)" said to be ambiguous
(C++20)
                   Group: GNU roff
               Submitter: bjarniig
               Submitted: Fri 28 Jul 2023 10:47:02 PM UTC
                Category: Core
                Severity: 3 - Normal
              Item Group: Warning/Suspicious behaviour
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any
         Planned Release: None


    _______________________________________________________

Follow-up Comments:


-------------------------------------------------------
Date: Fri 28 Jul 2023 10:47:02 PM UTC By: Bjarni Ingi Gislason <bjarniig>

Subject: node.cpp: "if (*p == spec)" said to be ambiguous (C++20)

File: src/roff/troff/node.cpp

g++ (Debian 13.1.0-9) 13.1.0 [Debian trixie]

  CXX      src/roff/troff/node.o
../src/roff/troff/node.cpp: In copy constructor 'tfont_spec::tfont_spec(const
tfont_spec&)':
../src/roff/troff/node.cpp:192:48: warning: implicitly-declared 'constexpr
tfont_spec& tfont_spec::operator=(const tfont_spec&)' is deprecated
[-Wdeprecated-copy]
  192 |   tfont_spec(const tfont_spec &spec) { *this = spec; }
      |                                                ^~~~
../src/roff/troff/node.cpp:192:3: note: because 'tfont_spec' has user-provided
'tfont_spec::tfont_spec(const tfont_spec&)'
  192 |   tfont_spec(const tfont_spec &spec) { *this = spec; }
      |   ^~~~~~~~~~
../src/roff/troff/node.cpp: In function 'tfont* make_tfont(tfont_spec&)':
../src/roff/troff/node.cpp:277:15: warning: C++20 says that these are
ambiguous, even though the second is reversed:
  277 |     if (*p == spec)
      |               ^~~~
../src/roff/troff/node.cpp:194:7: note: candidate 1: 'int
tfont_spec::operator==(const tfont_spec&)'
  194 |   int operator==(const tfont_spec &);
      |       ^~~~~~~~
../src/roff/troff/node.cpp:194:7: note: candidate 2: 'int
tfont_spec::operator==(const tfont_spec&)' (reversed)
../src/roff/troff/node.cpp:194:7: note: try making the operator a 'const'
member function
../src/roff/troff/node.cpp: In constructor 'tfont::tfont(tfont_spec&)':
../src/roff/troff/node.cpp:713:15: warning: C++20 says that these are
ambiguous, even though the second is reversed:
  713 |     if (*p == plain_spec) {
      |               ^~~~~~~~~~
../src/roff/troff/node.cpp:493:5: note: candidate 1: 'int
tfont_spec::operator==(const tfont_spec&)'
  493 | int tfont_spec::operator==(const tfont_spec &spec)
      |     ^~~~~~~~~~
../src/roff/troff/node.cpp:493:5: note: candidate 2: 'int
tfont_spec::operator==(const tfont_spec&)' (reversed)
../src/roff/troff/node.cpp:493:5: note: try making the operator a 'const'
member function
  CXX      src/roff/troff/number.o
  CXX      src/roff/troff/reg.o









    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?64486>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/


Reply via email to