• Jason Rhinelander's avatar
    Make PYBIND11_CPP_STANDARD work under MSVC · 77710ff0
    Jason Rhinelander authored
    Under MSVC we were ignoring PYBIND11_CPP_STANDARD and simply not
    passing any standard (which makes MSVC default to its C++14 mode).
    
    MSVC 2015u3 added the `/std:c++14` and `/std:c++latest` flags; the
    latter, under MSVC 2017, enables some C++17 features (such as
    `std::optional` and `std::variant`), so it is something we need to
    start supporting under MSVC.
    
    This makes the PYBIND11_CPP_STANDARD cmake variable work under MSVC,
    defaulting it to /std:c++14 (matching the default -std=c++14 for
    non-MSVC).
    
    It also adds a new appveyor test running under MSVC 2017 with
    /std:c++latest, which runs (and passes) the
    `std::optional`/`std::variant` tests.
    
    Also updated the documentation to clarify the c++ flags and add show
    MSVC flag examples.
    77710ff0
pybind11Tools.cmake 7.94 KB