То есть, если исходный std::optional был std::nullopt< /code>, затем полученный std::optional должен быть таким же. В противном случае будет выполнено запрошенное приведение (статическое/динамическое/переосмысление...).
Код: Выделить всё
struct B { };
struct C: public B { };
std::optional c;
std::optional b;
b = c; // works - a C can be implicitely up-casted to a B
//c = b; // doesn't work, explicit down-cast (involving knowledge) required
p>
Просто спрашиваю, видимо, я упускаю из виду элегантность.
Подробнее здесь: https://stackoverflow.com/questions/793 ... erior-type
Мобильная версия