February 11th, 2011
0 reactions

shared_ptr – Advanced STL, Part 1

Part 1 of my video lecture series exploring the Standard Template Library’s implementation is now available.  In this part, I explain how some of shared_ptr’s magic works, including type erasure and make_shared<T>()’s optimizations that save both space and time.

 

This advanced series assumes that you’re familiar with C++ and the STL’s interface, but not the STL’s implementation.  If you haven’t used the STL extensively yet, I recommend watching my introductory series.  For reference, here are all of the links:

 

[STL Introduction]

Part 1 (sequence containers)

Part 2 (associative containers)

Part 3 (smart pointers)

Part 4 (Nurikabe solver) – see Wikipedia’s article and my updated source code

Part 5 (Nurikabe solver, continued)

Part 6 (algorithms and functors)

Part 7 (algorithms and functors, continued)

Part 8 (regular expressions)

Part 9 (rvalue references)

Part 10 (type traits)

 

[Advanced STL]

Part 1 (shared_ptr)

 

Stephan T. Lavavej

Visual C++ Libraries Developer

Category
C++

0 comments

Discussion is closed.

'; block.insertAdjacentElement('beforebegin', codeheader); let button = codeheader.querySelector('.copy-button'); button.addEventListener("click", async () => { let blockToCopy = block; await copyCode(blockToCopy, button); }); } }); async function copyCode(blockToCopy, button) { let code = blockToCopy.querySelector("code"); let text = ''; if (code) { text = code.innerText; } else { text = blockToCopy.innerText; } try { await navigator.clipboard.writeText(text); } catch (err) { console.error('Failed to copy:', err); } button.innerText = "Copied"; setTimeout(() => { button.innerHTML = '' + svgCodeIcon + ' Copy'; }, 1400); }