Можно ли инициализировать массив не POD с оператором new и синтаксисом инициализатора?
Я только что прочитал и понялМожно ли инициализировать массив в C ++ 11 с помощью оператора new, но это не совсем решает мою проблему.
Этот код дает мне ошибку компиляции в Clang:
struct A
{
A(int first, int second) {}
};
void myFunc()
{
new A[1] {{1, 2}};
}
Я ожидал, что {{1, 2}} инициализирует массив одним элементом, который, в свою очередь, инициализируется аргументами конструктора {1, 2}, но я получаю эту ошибку:
error: no matching constructor for initialization of 'A'
new A[1] {{1, 2}};
^
note: candidate constructor not viable: requires 2 arguments, but 0 were provided
A(int first, int second) {}
^
note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 0 were provided
struct A
^
Почему этот синтаксис не работает?