On 8/15/22 20:20, Peter Dimov via Boost wrote:
Vinnie Falco wrote:
On Mon, Aug 15, 2022 at 8:42 AM Andrey Semashev via Boost
wrote: you don't define the semantics of the operations, in particular, what is the expected result
Yes. Thank you for noticing this, as it is exactly what I intended. It is the caller's responsibility to determine if the operation makes sense. The library doesn't care what the outcome is, only that the syntactic requirements are met. Which is how I documented it :)
The semantics are pretty clear when value_type is char, which is what is required.
It's less clear what should happen when the library calls append or assign with iterators whose value_type is char on something whose value_type is wchar_t, which is what you seem to be doing.
That part is defined by filesystem::path - character code conversion happens. What isn't clear in the code Vinnie posted earlier is what is supposed to be appended (percent-escaped string or not) and how (path appending or dumb concatenation). That's the problem with the docs, it says "appends", but there are too many ways to "append".