2015-06-25 2 views
0

Я повышаю новичку.Можно ли добавить код, добавив переменные класса класса

Я хотел бы знать, можно ли

Когда я добавить переменную-член класса (в заголовочном файле) затем автоматически генерировать код

// classA.h file 
class classA 
{ 
    public: 
     int a; // in fact a,b,c is some structure. 
     int b; 
     // I will add "int c;" 

     void save(); // I want to auto generate some code at save() 
     void load(); 
} 

Когда я добавляю «ИНТ с;»

// classA.cpp 
void classA::save() 
{ 
    someStream << a << b; // I use boost::serialize 

    // I want auto replace above code by next 
    // someStream << a << b << c; 
} 

void classA::load() 
{ 
    someStream >> a >> b; 

    // replace above 
    // someStream >> a >> b >> c; 
    // Exactly same order 
} 
enter code here 

Это возможно? используя boost mpl? макрос?

У меня есть переменная, чтобы добавить много.

+0

нет. может быть ... с каким-то сумасшедшим макросом. Оно того стоит? Нет. Просто пишите вручную. Если у вас много членов, рассмотрите рефакторинг (например, удерживайте вектор) – bolov

+2

, есть предложение добавить время компиляции в C++, но я не буду рассчитывать на это для ближайшего (?) Будущего. – bolov

+0

Oh..Thank you bolov – AnaHumid

ответ

0

Ближайшим вы можете получить std::tuple<int,int> data, который затем можно увеличить до std::tuple<int,int,int>, см. here как их распечатать.

+1

На самом деле, Boost Fusion имеет гораздо больше информации http://www.boost.org/doc/libs/1_58_0/libs/fusion/doc/html/fusion/adapted/define_struct.html – sehe

Смежные вопросы