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 | }
      | ^
```

Reply via email to