Why the move constructor is not explicit anymore in C++17
In the latest update of C++ to version C++17 there was some things which were changed, for example, the constructor of std::pair<int, const std::unique_ptr<int>> from an rvalue of type std::pair<int, std::unique_ptr<int>> is explicit in C++14, and implicit and C++17. Note that this behavior was only seen in libstdc++ and libc++ libraries. In MSVC’s library, the constructor is always implicit. This article …