C ++ Automatic Getter и Setters, используя шаблоны, отражение и макросыC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 C ++ Automatic Getter и Setters, используя шаблоны, отражение и макросы

Сообщение Anonymous »

Я делаю небольшую библиотеку, которая (среди прочего) позволит пользователям предоставлять класс, в качестве аргумента шаблона в базовый класс, базовый и иметь все (общедоступные) классные поля , преобразуемые в Getters/Setters в базе . Вот пример кода: < /p>

Код: Выделить всё

struct A {
float x, y, z;
}

template
class Base {
public:

// some code
}
Тогда, если я создаю создание нового экземпляра Base ,

Код: Выделить всё

Base b = Base(A);
b.get_x(); // should work, since `A` has the field x
b.get_w(); // doesn’t work, since `A` has no field w
И пользователю не нужно изменять определение , чтобы иметь возможность быть шаблоном для базы .
Я почти уверен, что функционирование, подобная этой, невозможно, чтобы я описал выше, но это возможно, используя шаблоны
, как я описал выше, но это возможно, используя шаблоны
.

Код: Выделить всё

b.get() // or something similar to this?
Я думаю, что этот тип функциональности существует в библиотеке PFR Boost, но это позволило бы мне ввести индекс полей struct a . например, < /p>

Код: Выделить всё

b.get() // this would work
b.get_x(); // not sure how I could implement this
b.get() ; // again, I don’t know how to implement something like this
Я не смог написать код, который реализует первый пример, b.get () , поскольку я не слишком знаком с PFR. Но, основываясь на Readme, последние два примера не могут быть поддержаны, поскольку PFR дает только доступ к полям по индексу, а не по имени. < /P>
Есть ли способ получить что -то вроде этого? Он должен быть в состоянии простираться за пределы просто Getters и Setters, но позволить мне изменить выход до получения и ввода перед настройкой (так что макрос автоматического Getter/Setter действительно не будет работать)

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • C ++ Automatic Getter и Setters, используя шаблоны, отражение и макросы
    Anonymous » » в форуме C++
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Java Getter и Setters для лучших практик простых свойств
    Гость » » в форуме JAVA
    0 Ответы
    25 Просмотры
    Последнее сообщение Гость
  • Разница в Java между использованием getter() и getter(Object c)
    Anonymous » » в форуме JAVA
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Почему @Getter's @Getter не генерирует методы получения
    Anonymous » » в форуме JAVA
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Почему @Getter's @Getter не генерирует методы получения
    Anonymous » » в форуме JAVA
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous

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