“Migrating a C++03 library to C++11 case study: Wt 4”
summary
Wt 4 migrates a large C++03 codebase to C++11, replacing boost.signals2 with a lambda/std::function/std::bind based implementation, swapping Boost.Date_Time for chrono + Howard Hinnant’s date, and removing Boost headers from public API. Ownership shifts to make_unique + move ownership with templated addWidget overloads that return raw pointers and a lightweight observing pointers invalidation scheme. Preprocessed size drops to ~1/5, compile time falls by ~1/5, and Windows installer size shrinks by about threefold.
AI-written summary · about
chapters (13)
- 0:00Introduction to Wt migration
- 1:04What is Wt framework
- 5:07Goals for Wt 4 modernization
- 6:37Memory management in Wt 3
- 10:32Ownership model alternatives
- 12:29Safe widget ownership with unique_ptr
- 13:36Detecting use-after-move issues
- 14:42Simplified widget addition
- 15:28Observing pointers for safety
- 16:58Replacing Boost with STL
- 18:49Performance improvements
- 20:17Windows build benefits
- 20:41Conclusion and Q&A
related talks
48mEarly Modern C++: How to Handle a C++03 Codebase in $CURRENT_YEAR
01h 06mRebuilding Boost Date-Time for C++11
01h 19mBackporting C++ Safety
01h 36mThe Incredible Shrinking Standard
01h 34mC++11/14 at Scale - What Have We Learned?
01h 29mWhat Does It Take to Implement the C++ Standard Library?
04mLightning Talk: A Journey Back In Time - C++ Evolution
01h 03mC++ Trivial Relocation Through Time
