void _join(types::str &buffer, T &&head, Types &&... tail) { if (head[0] == '/') buffer = std::forward<T>(head); else if (not buffer or *buffer.rbegin() == OS_SEP or *buffer.rbegin() == '/') buffer += std::forward<T>(head); else { buffer += OS_SEP; buffer += std::forward<T>(head); } _join(buffer, std::forward<Types>(tail)...); }