Можно ли реализовать рекурсивную оболочку POD на C++?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Можно ли реализовать рекурсивную оболочку POD на C++?

Сообщение Anonymous »

У меня есть класс для оболочки типов структур POD, но у меня возникают проблемы, когда структура POD содержит внутри другую структуру POD, поскольку мой класс-оболочка хранит POD только в том виде, в каком он есть, используя композицию.
#include

template
class POD {
protected:
T pod_;

public:
POD(T&& pod)
: pod_{std::move(pod)}
{
}

POD(const T& pod)
: pod_{pod}
{
}

const T& cpod() const { return pod_;}
};

extern "C" {
typedef struct {
float x;
float y;
} v2f_t;

typedef struct {
v2f_t start;
v2f_t end;
int foo;
int bar;
} line_t;
}

// example usage
class Vector2f: public POD {
public:
Vector2f(v2f_t&& pod)
: POD(std::move(pod))
{}

Vector2f(const v2f_t& pod)
: POD(pod)
{}

float sum() {
return pod_.x + pod_.y;
}
};

class Line: public POD {
Line(line_t&& pod)
: POD(std::move(pod))
{}

float total_sum() {
// I would like to call
// start.sum() + end.sum();
// but start and end are of type v2f_t so
// I need to create some kind of temporal POD wrappers
return Vector2f(pod_.start).sum() + Vector2f(pod_.end).sum();
}

}

Есть ли какой-нибудь способ сообщить компилятору, что внутри одного POD находится другой POD, и изменить класс-оболочку POD, чтобы он имел какой-то параметр шаблона с внутренним POD?
// something like
class Line: public POD {
// members would now be something similar to
Vector2f start;
Vector2f end;
int foo;
int bar;

}


Подробнее здесь: https://stackoverflow.com/questions/787 ... apper-in-c
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Проблемы разрешения Pod Pod Pod Pod DNS
    Anonymous » » в форуме Linux
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Pod install -bash: pod: команда не найдена
    Anonymous » » в форуме IOS
    0 Ответы
    72 Просмотры
    Последнее сообщение Anonymous
  • Pod install -bash: pod: команда не найдена
    Anonymous » » в форуме IOS
    0 Ответы
    58 Просмотры
    Последнее сообщение Anonymous
  • Файлы разработки POD исчезают после запуска установки POD?
    Anonymous » » в форуме IOS
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Как полностью понять и реализовать рекурсивную функцию факториала?
    Anonymous » » в форуме Python
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous

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