だめかなぁ...
#include <vector>
struct A {
A(int) {}
A(const A&) = delete;
A(A&&) = default;
};
std::vector <A> construct (std::initializer_list <A> p) {
std::vector <A> result;
for (auto itr {p.begin ()}, end {p.end ()}; itr != end; ++ itr)
result.push_back (std::move (const_cast <A &> (*itr)));
return result;
}
int main()
{
std::vector<A> v = construct ({ 1, 2, 3 });
}