``` #include <iostream> #include "variant.hpp" struct sv { sv(const char*) {} }; int main() { mpark::variant<bool, sv> v{"abc"}; std::cout << v.index() << "\n"; return 0; } ``` With gcc-4.8.5, this code incorrectly prints 0. It works for later versions of gcc (tested 7.5.0) and prints 1. I tested against master 3c7fc8266bb46046b42c2dc2663f9f505f0cec28