Заполнение std :: vector с неоднородным форсированием :: данные типа вектора слияния - PullRequest
1 голос
/ 17 февраля 2012

Я новичок в бусте и метапрограммировании, поэтому моя проблема такова:

typedef fusion::vector<int, char, double, std::string>  my_row;
typedef std::vector<my_row> my_vec;

my_row my_data = my_row(3,"f",2,"2");

my_vec t;

t.push_back(my_data); // this doesn't compile and gives error <C2039>

Это может быть очень глупый вопрос для большинства из вас, но почему он не компилируется? Нужно ли как-то преобразовывать вектор my_row во что-то, что можно сохранить в обычный std :: vector?

Кроме того, кто-то может указать мне на хорошую вводную книгу по метапрограммированию и бусту, чтобы я получил представление об использовании буста и некоторые примеры программирования с использованием буста?

Я действительно считаю, что веб-сайт с онлайн-руководствами - абсолютная ерунда. По крайней мере, это выглядит так для кого-то, кто не совсем новичок в C ++ и STL, но это теряется в оценках объявлений struct, которые используются в «::» и «<>». В общем, все вещи, которые просто делают boost сложным для использования и понимания для новичка.

1 Ответ

2 голосов
/ 17 февраля 2012

"f" - это строка, а не char.Попробуйте 'f' вместо.

...