1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
   |  
template<typename T, typename InPlaceFactoryT> 
void init(TiXmlElement *root, std::vector<T*>& container, InPlaceFactoryT const& usine)
{
	TiXmlElement* elem = root;
	//on récupère le nombre d'éléments dans le fichier
	size_t l_count = loadElement<size_t>(elem, "count");
	//on réserve la place mémoire
	T* beg = reinterpret_cast<T*>(new char[l_count*sizeof(T)]);
 
	//iteration
	T* it = beg;
	elem = elem->FirstChildElement("item");
	while (elem)
	{
		usine.template apply<T>(current);
		container.push_back(it);
		++it;
		elem = elem->NextSiblingElement("item"); // iteration
	}
} | 
Partager