Given the following code:
#include struct implicit_t { implicit_t(int x) : x_m(x) { std::cout << \"ctor\" <
Temporary objects are destroyed as the last step in evaluating the full-expression (1.9) that (lexically) contains the point where they were created. [12.2/3]