Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Приведение к структуре - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Основы моделирования физических процессов http://www.cyberforum.ru/cpp/thread1284964.html
Здравствуйте! Я магистрант физ-теха. В "экспериментальной" части магистерской работы стоит молекулярная динамика (нужно написать программу на С++). Программирование проходили на втором курсе, но...
C++ Почему операция взятия корня такая ресурсоемкая? Здравствуйте! Просветите в вопросе. 1. Какие методы используются для его взятия? 2. Как есть пути оптимизации? Заранее спс! http://www.cyberforum.ru/cpp/thread1284785.html
C++ Процесс обучения нейросети
Добрый день. Подскажите, пожалуйста, я хочу написать нейросеть на С++. Это возможно без подключения MATLAB на чистом С++? Дело в том, что перечитав кучу литературы об их проектировании и обучении, я...
Вложенность объектов и классов C++
// Создайте класс Rect, инкапсулирующий функциональность прямоугольника // с вещественными координатами. Он должен содержать два вложенных объекта // класса Vector, которые определяют координаты...
C++ Vector как динамический массив http://www.cyberforum.ru/cpp/thread1283381.html
Здравствуйте. Не могу понять, как сделать с помощью контейнера vector, динамический массив. Заранее спасибо
C++ Объектные файлы *.obj, *.o - они случайно не кроссплатформенные? Если нет, то реальна ли конвертация? Объясню подробнее, о чем я. Пишем простой код на си, без всяких платформо- и компиляторозависимых функций #include <stdio.h> //#include <conio.h> int main() { printf("hello world");... подробнее

Показать сообщение отдельно
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
28.10.2014, 11:31
Можно поизвращаться через boost::fusion. Суть: adapt_struct превращает структуру в fusion-sequence, по которой можно бегать итераторами.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
struct A
{
   int ivalue;
   double dvalue;
   std::string svalue;
};
 
BOOST_FUSION_ADAPT_STRUCT(
      A,
      (int, ivalue)
      (double, dvalue)
      (std::string, svalue)
)
 
struct assigner
{
public:
   assigner(void** pars) :
      counter(0), params(pars)
   {
   }
   template<typename T>
   void operator () (T& t) const
   {
      t = *static_cast<T*>(*(params + counter));
      ++counter;
   }
private:
   mutable int counter;
   void** params;
};
 
A create_from_params(void* params[])
{
   A object;
   boost::fusion::for_each(object, assigner(params));
   return object;
}
Полный пример: http://coliru.stacked-crooked.com/a/3dc0adcc2766fcd1
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru