mirror of
https://github.com/llvm/llvm-project.git
synced 2025-05-02 15:46:09 +00:00

C++03 didn't support `explicit` conversion operators; but Clang's C++03 mode does, as an extension, so we can use it. This lets us make the conversion explicit in `std::function` (even in '03), and remove some silly metaprogramming in `std::basic_ios`. Drive-by improvements to the tests for these operators, in addition to making sure all these tests also run in `c++03` mode. Differential Revision: https://reviews.llvm.org/D104682