LINUX.ORG.RU

C++: иницилизация структуры без конструкора


0

0

есть библиотека там объявлена структура
допустим

struct Foo {
int a;
char *b;
...
};

надо засунуть в vector эти данные,
писать
Foo tmp;
tmp.a=a;
tmp.b=b;
some_vector.push_back(tmp);

некрасиво,

some_vector.push_back({a, b});
не проходит,
хотя работает так
Foo tmp={a,b};

есть ли вариант без Foo tmp?

anonymous

Ответ на: комментарий от phoenix

тем что функцию foo надо описать для этого,
но раз ничего нельзя поделать то это лучший вариант спасибо.

anonymous
()
Ответ на: комментарий от anonymous

>сделай эту ф-цию static inline и помести в .h файл сразу после обьявления структуры.

струтура объявляется в библиотеке, модифицировать ее .h файл нельзя.

проблемма в том что таких структур несколько, и я надеялся найти выход проще чем писать несколько функций делающих тривиальные вещи.

anonymous
()
Ответ на: комментарий от anonymous

> струтура объявляется в библиотеке, модифицировать ее .h файл нельзя.

Ну, так и не модифицируй. Кто мешает "обернуть" структуру в наследнике на предмет введения конструктора?

> проблемма в том что таких структур несколько, и я надеялся найти выход проще чем писать несколько функций делающих тривиальные вещи.

Ф-ия одна: коструктор - проще некуда.

MOByte
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.