There are several ways to achieve that.
If you have objects of the same type, std::array would be a good return type for that.
If you have varying numbers, use std::vector instead.
If you have (a fixed number of) different types, use std::tuple:
std::tuple f()
{
return std::tuple ( 42, 4711l, 3.141 );
}
I know no way to return a varying number of non-polymorphic objects of different types built into the language or standard library.