Код: Выделить всё
struct A
{
A(std::vector x):
x_(std::move(x)) {}
inline operator std::vector()
{
return x_;
}
inline operator int()
{
return x_[0];
}
std::vector x_;
};
A add()
{
return A({1,2,3,4});
}
int main()
{
std::vector b{add()};
}
Это потому, что при формировании инициализатора_list оба преобразования работают, поэтому выбирается одно A->int?
Подробнее здесь: https://stackoverflow.com/questions/781 ... -vectorint
Мобильная версия