Smart Pointer Move: shared_ptr Copy vs. unique_ptr Move

Question 33 / 51 Correct so far: 0 (0 answered)

Snippet A

Shared Ptr Copy

static void consumeShared(std::shared_ptr<Widget> p) {
    benchmark::DoNotOptimize(p.get());
}

consumeShared(src);
Snippet B

Unique Ptr Move

static std::unique_ptr<Widget> consumeUnique(std::unique_ptr<Widget> p) {
    benchmark::DoNotOptimize(p.get());
    return p;
}

ptr = consumeUnique(std::move(ptr));
Shared test data (shared-setup)
struct Widget {
    int data[8];
};

Which snippet is faster?

Select the correct answer(s)