https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122771
Bug ID: 122771
Summary: std::meta::operator_of() does not accept operator
function templates
Product: gcc
Version: 16.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: eczbek.void at gmail dot com
Target Milestone: ---
The paper says that std::meta::operator_of() accepts reflections representing
operator function templates here:
https://isocpp.org/files/papers/P2996R13.html#pnum_499
https://godbolt.org/z/oh3nTx1zj
```
struct S {
void operator()(auto) {}
};
consteval {
for (auto member : std::meta::members_of(^^S,
std::meta::access_context::current())) {
if (std::meta::is_operator_function_template(member)) {
std::meta::operator_of(member);
}
}
}
```
```
<source>:13:1: error: uncaught exception of type 'std::meta::exception';
'what()': 'reflection does not represent an operator function'
13 | }
| ^
```