https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89151
--- Comment #2 from Csaba Ráduly <csaba_22 at yahoo dot co.uk> ---
Commenting out the non-optional operator GetWhat makes GCC 8.2.0 compile the
example as written. However, that operator is needed if struct R is changed to
struct R {
boost::optional<std::string> password;
std::string name;
R()
: password{ get_from().as<decltype(password)>() }
, name{ get_from().as<decltype(name)>() }
{}
};
