Idiom #209 Type with automatic deep deallocation
Declare a type t which contains a string s and an integer array n with variable size, and allocate a variable v of type t. Allocate v.s and v.n and set them to the values "Hello, world!" for s and [1,4,9,16,25], respectively. Deallocate v, automatically deallocating v.s and v.n (no memory leaks).
#include <string>
using namespace std::string_literals;
#include <vector>
#include <memory>
struct t {
    std::string s;
    std::vector<int> n;
};
auto v = std::make_unique<t>(
    "Hello, world!"s,
    decltype(t::n){1, 4, 9, 16, 25}
);
v.reset();
// Automatically:
void fn(){
    auto v = std::make_unique<t>(
        "Hello, world!"s,
        decltype(t::n){1, 4, 9, 16, 25}
    );
}