id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 12802,optional is broken in 1.63,pal666@…,Fernando Cacciola,"{{{ boost::optional > o; o = 1; }}} gcc says error: no match for 'operator=' (operand types are 'boost::optional >' and 'int') i found the reason for failure: is_convertible_to_T_or_factory checks is_constructinble, which means , U'''&&'''>, while recursive wrapper specializes only ,T> (no '''&&''') as true and ,U> (catches U=T'''&&''') as false i don't know who is wrong - recursive_wrapper or optional it can be fixed either by adding {{{ template struct is_constructible < recursive_wrapper < T>, T &&> : boost::true_type{}; }}} to recursive_wrapper or by changing boost::is_constructible to boost::is_constructible in is_convertible_to_T_or_factory ",Bugs,new,To Be Determined,optional,Boost 1.63.0,Regression,,,