https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105683
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
It is calling the copy constructor (which you missed in your comment):
value(const value& other) noexcept : v{other.v}
{
}
Which is called via:
inline value_variant_type::value_variant_type(const
std::vector<ossia::value>& v) : m_type{Type8}
{
new (&m_impl.m_value8) std::vector<ossia::value>(v);
}
inline ossia::value init_value(ossia::val_type type)
{
...
return std::vector<ossia::value>{};
}
I am thinking there is a constructor that is not being elided here.