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

--- Comment #3 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Related test:

```
#include <meta>
#include <iostream>
#include <utility>

using namespace std;
using namespace std::meta;

template<class T, size_t k>
struct VectorStorage;

template<class T>
struct VectorStorage<T, 3>
{
        T x{};
        T y{};
        T z{};
};

template<class T, size_t k>
struct Vector : VectorStorage<T, k>
{
        using Base = VectorStorage<T, k>;
        static constexpr auto kMembers =
define_static_array(nonstatic_data_members_of(^^Base,
std::meta::access_context::current()));
};

int main()
{
        template for (constexpr std::meta::info member : Vector<float,
3>::kMembers)
        {
                constexpr std::string_view name = identifier_of(member);
                std::cout << name << std::endl;
        }
}
```

Reply via email to