std::function func{
[](int z) {
if (z>0) {
return X();
}
return Y();
}
};
Y var1 = X(); // тут все впорядке, так как есть соответствующий конструктор
Как вернуть разные типы из std::function?
variant, any, void*