Можно ли инициализировать массив не 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
       ^

Почему этот синтаксис не работает?

Ответы на вопрос(1)

Ваш ответ на вопрос