+ template<class T>
+ std::vector<const T*> FromVecAutoToVecOfConst(const std::vector<MCAuto<T>>& inputVec)
+ {
+ std::size_t size(inputVec.size());
+ std::vector< const T *> ret(size);
+ typename std::vector< const T *>::iterator itArrays(ret.begin());
+ std::for_each(inputVec.begin(),inputVec.end(),[&itArrays](MCAuto<T> elt) { *itArrays++=elt; });
+ return ret;
+ }
+
+ template<class T>
+ std::vector<MCAuto<T>> FromVecToVecAuto(const std::vector<T*>& inputVec)
+ {
+ std::size_t size(inputVec.size());
+ std::vector<MCAuto<T>> ret(size);
+ typename std::vector<MCAuto<T>>::iterator itArrays(ret.begin());
+ std::for_each(inputVec.begin(),inputVec.end(),[&itArrays](T *elt) { (*itArrays).takeRef(elt); itArrays++; });
+ return ret;
+ }
+
+ template<class T>
+ std::vector<MCAuto<T>> FromVecConstToVecAuto(const std::vector<const T*>& inputVec)
+ {
+ std::size_t size(inputVec.size());
+ std::vector<MCAuto<T>> ret(size);
+ typename std::vector<MCAuto<T>>::iterator itArrays(ret.begin());
+ std::for_each(inputVec.begin(),inputVec.end(),[&itArrays](const T *elt) { (*itArrays).takeRef(const_cast<T*>(elt)); itArrays++; });
+ return ret;
+ }
+