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/