Skip to content
Snippets Groups Projects
  • Sam Yates's avatar
    Replace `util::any` and `util::variant` with std:: equivalents. (#1152) · 30e4c684
    Sam Yates authored
    * Replace usages of `util::any` with `std::any`.
    * Modify `util::any_cast` so that it forwards `std::any` arguments to `std::any_cast`; move into own header.
    * Prevent `std::unique_any` from implicitly encapsulating `std::any` objects.
    * Replace `test_any.cpp` unit tests with `test_any_cast.cpp` unit tests.
    * Replace some usages of `std::is_same<X, Y>::value` with `std::is_same_v<X, Y>` as part of general C++17ification.
    * Remove `util/variant.hpp`, `test_variant.cpp`.
    * Replace occurrences of `util::variant` with `std::variant`.
    * Replace `util::variant::get<N>` with `std::get<N>`.
    * Replace `util::get_if<N>` with `std::get_if<N>`, passing a pointer to variant instead of a ref or value.
    * Add some standard #includes where they were required in the source, but only included transitively.
    * Some minor comment tidying and fix-ups.
    * Update C++ API docs.
    
    Fixes #1144.
    Unverified
    30e4c684