    #include <iostream>
    #include <vector>

    struct S {
        S(const char* v_) : m_v(v_) {}
        ~S() {
            std::cout << "destructing ~S(" << m_v << ")\n";
        }
        const char* m_v;
    };

    int main()
    {
        std::vector<S*> v;
        v.push_back(new S("hello"));
        v.clear();

        v.push_back(new S("fin"));
    }
