C10::variant vs. std::variant

I know that the pytorch C++ frontend is now pretty much grounded in C++14. In my own code, I have a possible good use case for std::variant. This is actually a two-part question:

  1. So far, it appears that torch::optional is a std::optional workalike. Does the same apply to c10::variant? The only use cases I have seen are where it is being used to fold in a bunch of enums.
  2. If I punt and just compile my code specifying the C++17 standard so I can get at std::variant, is it possible that this will break anything appearing in the torch headers? I am guessing not, but forewarning would be helpful.
    I am still digging through the source code to try to address #1. I can probably come up with a work-around if necessary, but std::variant seems to be the most elegant option.