Challenges and Benefits of Upgrading Sea of Thieves From C++14 to C++20
summary
Sea of Thieves upgrades its codebase (~6.5M LOC across game + engine) from C++14 → C++20 by flipping permissive-minus then moving through C++17 and C++20, hitting concrete fixes: 215 files/369 diffs to remove MSVC permissive behavior, nested-lambdas gave sizes 8 vs 1 and copy elision surprising 3 vs 1 until fixed, auto_ptr removed by upgrading a third‑party lib, result_of → invoke_result, many default-capture=this rewrites, aggregate/init and spaceship const-operator fixes; first successful compile in ~two dev-days, full submission took months, tests catch six behavior regressions.
AI-written summary · about
chapters (12)
- 0:00Introduction
- 3:58Sea of Thieves history
- 10:19C++ upgrade challenges
- 20:13Permissive mode priority
- 26:52C++14 to C++20 plan
- 27:14Two-phase lookup issues
- 33:15String literal fixes
- 37:47Template test failures
- 40:14C++17 auto pointer
- 43:02C++20 challenges
- 55:41Upgrade stats
- 1:00:40Achievements and future








