Реализации на С++

Object pool

Общая реализация на языке С++

template <typename T>
concept EmployeePoolObject = requires(T t)
{
	t.clockIn();
};
# include <iostream>
# include <memory>
# include <iterator>
# include <vector>

using namespace std;

int main()
{
	shared_ptr<EmployeePool<Employee>> pool = EmployeePool<Employee>::instance();

	vector<shared_ptr<Employee>> vec(4);

	for (auto& elem : vec)
		elem = pool->hireEmployee();

	pool->fireEmployee(vec[1]);

	cout << *pool << endl;

	shared_ptr<Employee> ptr = pool->hireEmployee();
	vec[1] = pool->hireEmployee();

	cout << *pool << endl;
}

Last updated

Was this helpful?