В приведенном ниже коде преобразование для as_v1 работает нормально и позволяет копировать данные.
Как сделать то же самое для данных во вложенной структуре NS?
Код: Выделить всё
#include
#include
#include
#include
struct S
{
float v1;
float v2;
struct SN {
float v3;
};
SN sn;
};
int main() {
std::vector aos{ { 1.0f, 2.0f, { 3.0f } } };
std::vector soa(aos.size());
// Would work just fine for the:
// auto as_v1 = aos | std::views::transform(&S::v1);
// How could I manage a nested structure's member:
// This, of course, doesn't compile because of types inconsistency
auto as_v3 = aos | std::views::transform(offsetof(S, sn.v3));
std::ranges::copy(as_v3, soa.begin());
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79304168/how-to-make-transform-view-for-the-nested-structure-data[/url]
Мобильная версия