id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 8554,make_variant_over requires Extensible Sequence,Darryl Green ,Antony Polukhin,"Variant tries to perform operations not supported by a Forward Sequence on the sequence provided to make_variant_over. Conversely the type of variant::types appears to be an Extensible Sequence which means: Can fix by amending docs to specify that sequences used must be Extensible Sequences (needs both changes as motivation for composing via joint_view was to avoid applying operations requiring Extensible Sequence to variant::types) or Can fix by composing an Extensible Sequence in make_variant_over - something like: typedef boost::mpl::vector<> empty; typedef boost::mpl::insert_range::type, Sequence>::type ExtensibleSequence; The following example shows the issue #include #include #include #include typedef boost::variant v1; typedef boost::variant v2; //typedef boost::make_variant_over::type>::type v3; // FAILS - requires Extensible Sequence //typedef boost::variant v3; // OK (obviously) //typedef boost::make_variant_over::type, v2::types::type>::type>::type v3; // OK (so types is probably an Extensible Sequence as insert_range works on it...) int main(int argc, char *argv[]) { v1 a = 1; v2 b = ""2""; v3 c = a; return boost::get(c); } ",Bugs,closed,Boost 1.65.0,variant,Boost 1.53.0,Problem,fixed,,