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

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

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

Показать сообщение отдельно
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 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
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru