Для простых классов данных иногда можно использовать boost::tuple
(или std::tuple
в C ++ 0x):
typedef tuple<int, char> MyDataElement;
MyDataElement data = make_tuple(1,'c');
int whatever = get<0>(data); // 1
Кроме того, подумав дважды, вы также можете рассмотреть возможность использования Повысить карту свойств .
Наконец, что касается сценария VIM, это, безусловно, можно сделать. Я немного исследовал, и вы можете сделать что-то вроде этого (предположим, что вы идентифицируете переменные-члены с префиксом, скажем m_
):
:let bl = getbufline("" ,1, "$")
это загрузит все строки буфера, затем отфильтрует их по тем, которые содержат что-то "m _":
:let xx = filter(bl, 'v:val =~ "m_.*"')
затем вы можете исследовать, как извлечь фактические имена переменных из массива xx
и т. Д.