Parsing a complete string is more efficient than appending each
component one-by-one.
* src/c++17/fs_path.cc (path::parent_path()): Create whole path at
once instead of building it iteratively.
From-SVN: r271754
2019-05-29 Jonathan Wakely <jwakely@redhat.com>
+ * src/c++17/fs_path.cc (path::parent_path()): Create whole path at
+ once instead of building it iteratively.
+
* testsuite/util/testsuite_api.h: Remove names of unused parameters.
PR libstdc++/85494 use rdseed and rand_s in std::random_device
__ret = *this;
else if (_M_cmpts.size() >= 2)
{
- for (auto __it = _M_cmpts.begin(), __end = std::prev(_M_cmpts.end());
- __it != __end; ++__it)
- {
- __ret /= *__it;
- }
+ const auto parent = std::prev(_M_cmpts.end(), 2);
+ const auto len = parent->_M_pos + parent->_M_pathname.length();
+ __ret.assign(_M_pathname.substr(0, len));
}
return __ret;
}