https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85671

            Bug ID: 85671
           Summary: Lack of `std::move()` inside `operator/` for
                    `std::filesystem::path`.
           Product: gcc
           Version: 8.1.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: lh_mouse at 126 dot com
  Target Milestone: ---

In 'bits/fs_path.h' there is

```
  /// Append one path to another
  inline path operator/(const path& __lhs, const path& __rhs)
  { return path(__lhs) /= __rhs; }
```


Isn't this returning a copy of the unnamed object, because `operator/=` returns
an lvalue reference?  

I think the operand of the return statement should be `move(path(__lhs) /=
__rhs)`.

Reply via email to