тип значения — C ++ value_type параметра шаблона

Прежде всего, вот мои примеры:

SymmetricMatrix<std::vector<int>, int> a;
SymmetrixMatrix<std::list<int>, int> b;
SymmetricMatrix<std::deque<double>, double> c;

SymmetricMatrix<std::vector<int> > d;
SymmetricMatrix<std::vector<double> > e;

Итак, есть два параметра шаблона. Если я напишу параметр по умолчанию для второго, мне не нужно будет указывать его имя при создании объекта. Но как я могу настроить его на первый параметр? Например, если первый параметр std::vector<int>второй должен быть intесли первый std::vector<double>второй должен быть double,

3

Решение

template<class DS, class T = typename DS::value_type>
class SymmetricMatrix
{
};

SymmetricMatrix<std::deque<double>> c;

Предполагается, что DS (структура данных) содержит typedef value_type, иначе он не будет компилироваться. Вы можете заменить value_type чем угодно, если оно в DS.

5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]