7
Il codice di seguito:inizializzazione di un array dinamico di costruibile non predefinita oggetti
struct Foo
{
Foo(int){} // no default constructor
};
int main()
{
Foo* pFoo = new Foo[2]{1,2}; // OK in g++, fails in clang++!
delete[] pFoo;
}
compiles in gcc, ma fails in clang. Il codice sopra sintatticamente è corretto?
Nemmeno wandbox. http://melpon.org/wandbox/permlink/jS7mx3XTG2xjDqb9 –
Proprio quando pensavo di poterci fidare dei nostri strumenti. Penso che tu abbia rotto uno di loro. Vedi, questo è il motivo per cui non possiamo avere dei simpatici compilatori. – wally
Se si utilizza C++ 11, passare a 'std :: vector' e utilizzare il suo costruttore che accetta un * braced-init-list * come input:' std :: vector pFoo = {1, 2}; ' o forse 'std :: vector pFoo = {Foo (1), Foo (2)};' –