سلام به دوستان عزیز.
من با توجه به این پست یک تابع برای merge رشته نوشتم که پارامتر اول separator و مابقی مسیر هستند به صورت زیر :
void mergePath(std::vector<std::string>&){}//end
template <typename T, typename ...Types>
void mergePath(std::vector<std::string>& result, const T& val, const Types& ... args)
{
result.push_back(val);
mergePath(result, args ...);
}
template <typename ...Types>
string mergePath(const string& sep, const Types& ... args)
{
std::vector<std::string> vec_strs;
mergePath(vec_strs, args ...);
string result = "";
if (!vec_strs.size())
return result;
result = vec_strs.front();
for (size_t i = 1; i < vec_strs.size(); i++)
result += sep + vec_strs[i];
return result;
}
int _tmain(int argc, _TCHAR* argv[])
{
cout << mergePath("\\", "C:", "MyFolder", "pictures") << endl;
return 0;
}
حالا سوالی که از دوستان داشتم آیا نمیشه اینکار را در یک تابع انجام داد و چندین تابع ننوشت؟
تو این پست توضیح داده شده ولی متوجه نشدم