Given the following code:
#include struct implicit_t { implicit_t(int x) : x_m(x) { std::cout << \"ctor\" <
f(42) constructs an unnamed implicit_t implicitly. It lives for the duration of it's containing scope, just as any auto variable would. Naturally, the d'tor gets called on return 0; of main().
f(42)
implicit_t
auto
return 0;
main()