С C ++ 11 и Qt вы можете это сделать:
QString join(const QString& v) {
return v;
}
template<typename... Args>
QString join(const QString& first, Args... args) {
return QDir(first).filePath(join(args...));
}
Использование:
QString path = join("/tmp", "dir", "file"); // /tmp/dir/file