Przyglądam się starszemu kodowi i natknęłam się na x=new(Foo);
(zwróć uwagę na nawiasy wokół podanego typu). Przetestowałem różne warianty i wydaje się być taki sam, jak x=new Foo;
Czy "x = new (Foo)" jest takie samo jak "x = new Foo" dla dowolnego Foo?
Foo jest strukturą danych innych niż POD. Jakiś program wycieku pamięci zewnętrznej sygnalizuje linię - alokuje pamięć dla parametru wyjściowego CORBA, więc wywołujący powinien dbać o usunięcie, ale jest to oddzielny problem z wieloma warstwami pośrednimi.
Czy moja analiza jest poprawna i czy jest do przyjęcia?
To co myślałem też, ale okazuje się, że to musi być bardziej subtelne niż to. Na przykład następujący kod nie jest kompilowany: '(int) main() {return 0; } '. –
Nieprawdziwe, nawiasy wokół typów nie są zwykle dozwolone. – zch
@zch Następnie, czy istnieje (bez odniesienia dudnienie, choć wyczuwam to nadchodzi) krótka lista, kiedy nawias * są * dozwolone wokół typów? –