В моем новом проекте я строй управления данными module.I хочу дать простой тип хранения шаблонов для верхних слоев, какДинамического изменения стратегии распределения в повышении :: вектор и повышение :: матрицы
template<typename T>
class Data
{
public:
T getValue();
private:
boost::numeric::ublas::matrix<T> data;
}
Моих Цель состоит в том, чтобы сменить распределитель данных с помощью некоторых разных распределителей, таких как распределитель процесса Boost.inter или распределитель Boost.pool (Boost Ublas Matrix и векторные классы принимают распределитель как параметр шаблона). И дайте только один класс и метод Factory для создания соответствующих распределитель под обложкой. Виртуальный базовый класс может быть приятным, но я не мог справиться с тем, как его использовать с шаблонами. Какие шаблоны дизайна или решения вы предлагаете?
Edit:
Я буду использовать boost.pool и boost.shared_memory_allocator.Briefly я хочу иметь различные классы с различным распределением strategies.But моей точкой является верхней частью программы не должен иметь никаких знаний о it.Real вызова для меня нужно собирать разные классы шаблонов с одинаковыми базовыми классами.
Редактировать: Для тех, кто хочет использовать класс матрицы с пользовательским распределителем.
это так:
using boost::numeric::ublas;
template<typename T, class Allocator = boost::pool_allocator<T>>
class
{
public:
matrix<T, row_major, std::vector<T,Allocator>> mData;
}
Извините, я признаю, что это было не ясно, но ваш метод возможен для меня. – Qubeuc
Прохладный :) рад помочь –