[Bug c++/94214] New: function lookup with overloaded operators accepts invalid
niklas at nolte dot dev
gcc-bugzilla@gcc.gnu.org
Wed Mar 18 13:27:39 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94214
Bug ID: 94214
Summary: function lookup with overloaded operators accepts
invalid
Product: gcc
Version: 10.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: niklas at nolte dot dev
Target Milestone: ---
Sample code:
```
#include <vector>
template <typename T>
void blub(std::vector<T> const& i) {
-i;
//getsize(i); //this also fails in gcc
}
int operator-(std::vector<int> const& i) {
return i.size();
}
int getsize(std::vector<int> const& i) {
return i.size();
}
int main() { blub(std::vector<int>{1}); }
```
this shouldn't compile, it doesn't in clang..
See
- https://godbolt.org/z/hgGeH3
-
https://stackoverflow.com/questions/60740257/clang-vs-gcc-function-lookup-with-operator-overloads?noredirect=1#comment107466162_60740257
-
https://stackoverflow.com/questions/58793092/two-phase-function-template-compilation-not-only-adl-is-employed-in-the-2nd-p
More information about the Gcc-bugs
mailing list