Using TArray together with TUniquePtr is not fully supported?

Hi there, I’m trying to use TArray together with TUniquePtr to hold instances of a non UObject class, but it seems like the TArray initializer_list constructor does not support move semantics.

TArray<TUniquePtr<IAction>> Actions = { MakeUnique<Class1>(), MakeUnique<Class2>() };

This will call TArray::CopyToEmpty which will eventually call the TUniquePtr’s copy constructor which is deleted.

The workaround I found was to just avoid using the initializer list and manually add all elements individually

TArray<TUniquePtr<IAction>> Actions;
Actions.Emplace(MakeUnique<Class1>());
Actions.Emplace(MakeUnique<Class2>());

This works but it seems weird to me. Now my question is…
Should I convert these vanilla c++ classes into UObjects and avoid using TUniquePtr and move semantics all together?
Or should I keep this workaround and avoid using the TArray’s initializer list?

the behaviour of std::initializer_list is to hold objects by value and not allow moving out.