#include #include #include // If this include is removed, then it compiles. #include struct A {}; struct B {}; void f() { // If boost::blank is not used, then it compiles. using Variant = boost::variant; Variant v1; std::vector vec{A{}, B{}}; }