* Add back-ticks around `Response<void>` in changelog
* Remove extra whitespace after type name in identity CL.
* Add back-ticks around type name in identity CL.
Co-authored-by: Victor Vazquez <victor.vazquez@microsoft.com>
* Move changelog entry to correct place
* Reformat breaking changes
* New feature in the right place
* body_stream.hpp
* Backtick
* Add changes made for Context
* More updates
* More updates
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
* Moved the `Base64Encode()` and `Base64Decode()` functions to be static members of a `Convert` class within the `Azure::Core` namespace.
* Add the class name in the source file for posix.
Usability studies found that static methods are generally not as user-friendly as instance methods. Folks new to the SDK have harder time discovering the APIs, they reverse the flow of typing, and the calling code ends up a bit more verbose because you have to spell out the whole namespace and type name when there aren't any using directives.
There doesn't seem to be a strong benefit or feasibility reason to keep these method statics which are typically harder to use and discover.
cc @kyle-patterson
Part of https://github.com/Azure/azure-sdk-for-cpp/issues/1789
> We shouldn't have Method, StatusCode, or Range. The way to reason about this is chances of collision and ease of documentation/discover-ability in SEO. RawResponse is specific enough that it doesn't need Http prefix, that's how I would draw the line.
Part of https://github.com/Azure/azure-sdk-for-cpp/issues/1789
From Jeff:
> BodyStream is only exposed to users when uploading/downloading bytes. Except for Storage almost no services do this at all; they read the stream and deserialize into a structure and the customer gets the structure - not the stream. Azure::Core:IO is a fine namespace.
* Make sure DateTime.ToString() works without requiring additional parameters by choosing RFC 3339 as the default.
* Address naming feedback and add some tests.
* Fix test warning by using static cast.
* VS2017 is right, we should be including `<iterator>`, if we use `std::inserter`. It fails to compile on VS2017 without that include.
Why if fails on 2017 and not 2019? Some of the other stdlib headers we include must be including `<iterator>` indirectly in 2019. But we should not be relying on that. Standard says, you use `std::inserter` - include `<iterator>`, if it works without that, that's a coincidence which may break beween versions of stdlib/compilers.
* VS 2017 does not fail because we don't include `<type_taits>` here, but formally we should include it too, because we use
`std::remove_reference` and `std::remove_const`. It just happens that `log.hpp` includes it, but we should not be relying on that.
This was found during local vcpkg verification - I happen to have it configured targeting VS2017. It does not mean it will fail in vcpkg CI, or would affect many customers, but some for sure. Verification on vcpkg CI looks good - https://github.com/microsoft/vcpkg/pull/16578 (it is based on our master as of Sat 3/6 + this fix).
I verified locally that it builds successfully on `x64-windows`, `x64-windows-static`, and `arm-uwp`.
We should run verification once again, once we have all the renames/moves in master.
* For consistency within the SDK, move Azure::Core::Context to be the last
parameter for various Azure::Core APIs.
* Fix merge conflict due to log policy file change.
* Update new client options tests