Как сделать представление преобразования для данных вложенной структуры?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как сделать представление преобразования для данных вложенной структуры?

Сообщение Anonymous »

Как сопоставить данные вложенной структуры с помощью std::views::transform?
В приведенном ниже коде преобразование для 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]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»