Mam takie coś:
struct Foo
{
Foo() { ... };
Foo* This() { return this; }
};
struct Base()
{
fastcall_lub_cdecl Base(Foo *foo) { ... }
};
struct Derived()
{
fastcall_lub_cdecl Derived()
: Base(Foo().This()) //<--- TU
{ ... }
};
Na pewno nie zniszczy obiektu Foo przed skończeniem konstruktora Base ? Nie mogę się doszukać jak to jest w standardzie C++.
Pytam, bo kod ma być na wieeeele platform (od Win/Nix przez Mac, Amiga po Nokia, PSP ...)
Gdzieś się doczytałem, że obiekty tymczasowe żyją dopóki całe wyrażenie nie zostanie wykonane. Czyli było by niby ok. Ale ? Właśnie, jest jakieś ale ?