https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127316

--- Comment #8 from ensadc at mailnesia dot com ---
`current_function()` doesn't work. When it is called in a function's return
type, it skips the function per
http://eel.is/c++draft/meta.reflection.scope#3.3 .

`parent_of` is weirder. For `parent_of(^^a)` in the return type, GCC currently
seems to return `^^::`, which doesn't make sense to me.

```
#include <meta>

template<auto V>
struct constant_wrapper { static constexpr auto value = V; };

auto f(int a) -> constant_wrapper<parent_of(^^a)> {
    static_assert(parent_of(^^a) == decltype(f(0))::value);
    // error: the comparison reduces to '(^^f(int) == ^^::)'
}
```

Reply via email to