Date: Wed, 17 Mar 2021 01:26:48 +0200
Hana Dusíková wrote:
> Hi,
>
> as some of you already asked me directly:
>
> https://github.com/lock3/meta/tree/paper/p2320 is current implementation
> of P2320, you can also try it in the Compiler Explorer:
>
> https://cppx.godbolt.org/z/TfTTa9 (language: cppx, compiler: p2320 trunk)
>
> Thanks Andrew and Wyatt for awesome work! 🌷
Ditto, and thanks Hana for the link.
I've been trying to try things, and here's where I'm stuck at the moment:
https://cppx.godbolt.org/z/T8f7eo
#include <experimental/meta>
namespace meta = std::experimental::meta;
enum E
{
e1, e2
};
int main()
{
constexpr auto m = meta::members_of( ^E );
for constexpr (auto x: m) { constexpr char const * name = meta::name_of( x ); }
constexpr char const * names[] = { meta::name_of(...[:m:])... };
}
Neither the `for constexpr` loop, nor the range expansion below it compile. I'm
obviously doing something wrong, but I don't know what - the `for constexp` loop
is directly taken from the P1240 examples, and the expansion below it ought to
work according to my reading of P2320.
What's my mistake?
> Hi,
>
> as some of you already asked me directly:
>
> https://github.com/lock3/meta/tree/paper/p2320 is current implementation
> of P2320, you can also try it in the Compiler Explorer:
>
> https://cppx.godbolt.org/z/TfTTa9 (language: cppx, compiler: p2320 trunk)
>
> Thanks Andrew and Wyatt for awesome work! 🌷
Ditto, and thanks Hana for the link.
I've been trying to try things, and here's where I'm stuck at the moment:
https://cppx.godbolt.org/z/T8f7eo
#include <experimental/meta>
namespace meta = std::experimental::meta;
enum E
{
e1, e2
};
int main()
{
constexpr auto m = meta::members_of( ^E );
for constexpr (auto x: m) { constexpr char const * name = meta::name_of( x ); }
constexpr char const * names[] = { meta::name_of(...[:m:])... };
}
Neither the `for constexpr` loop, nor the range expansion below it compile. I'm
obviously doing something wrong, but I don't know what - the `for constexp` loop
is directly taken from the P1240 examples, and the expansion below it ought to
work according to my reading of P2320.
What's my mistake?
Received on 2021-03-16 18:26:51