#include <numeric>
template<typename Type>
Type* Func(Type* lpDest,const Type* lpSource,size_t count = std::numeric_limits<size_t>::max()){
size_t i = 0;
for(;i < count && lpSource[i] != '\0';i++) lpDest[i] = lpSource[i];
if( i < count) lpDest[i] = '\0';
return lpDest;
}