{"slug": "boost", "name": "Boost", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 5, "commenters": 10, "warners": 2, "score": 3.135, "rising": 2.35, "first": "2025-12-01", "latest": "2026-10-21", "why": "There is Boost in C++. It is very mature and honestly modern C++ has a lot of extremely powerful stdlib functionality", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 11, "compare": 0, "warn": 2}, "spark": [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2], "listed": true, "loved": [], "caveat": "", "short_quote": "There is Boost in C++. It is very mature and honestly modern C++ has a lot of extremely powerful stdlib functionality", "kind": "", "icon": true, "domain": "boost.org", "github_repo": null, "official_url": "https://www.boost.org", "pricing": "", "aliases": ["Boost"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 803023824, "item_id": 50188989, "url": "https://news.ycombinator.com/item?id=50188989", "by": "nly", "date": "2026-10-21", "version": null, "stance": "recommend", "quote": "Boost polycollection.is better than what you propose", "excerpt": "Boost polycollection.is better than what you propose https://www.boost.org/doc/libs/latest/doc/html/poly_collection/an_efficient_polymorphic_data_st.html", "context": "", "use_case": "polymorphic collections", "switched_from": "", "story": "Composite objects and C++26 the std:polymorphic type"}, {"id": 800982736, "item_id": 50061421, "url": "https://news.ycombinator.com/item?id=50061421", "by": "rietta", "date": "2026-10-12", "version": null, "stance": "recommend", "quote": "There is Boost in C++. It is very mature and honestly modern C++ has a lot of extremely powerful stdlib functionality", "excerpt": "There is Boost in C++. It is very mature and honestly modern C++ has a lot of extremely powerful stdlib functionality and classes that will still be orders of magnitude more performant that the vast majority of the web app languages we use today. See https://www.boost.org/", "context": "", "use_case": "C++ web apps", "switched_from": "", "story": "A Modern Web App in C"}, {"id": 798356224, "item_id": 49897264, "url": "https://news.ycombinator.com/item?id=49897264", "by": "MaxBarraclough", "date": "2026-09-29", "version": null, "stance": "recommend", "quote": "Boost offers intrusive_prt for this.", "excerpt": "> unlike a lot of high level languages, there isn't an extra allocation for a node structure. The node structure is a member of the structure being linked. That's good, but it seems like how-hanging fruit. Boost offers intrusive_prt for this. [0] make_shared goes half way, and performs a single allocation to return a shared_ptr to a new object. It eventually made its way from Boost to the standard. [1][2] See also [3", "context": "", "use_case": "", "switched_from": "", "story": "Writing Efficient C++ Code (2013)"}, {"id": 742632976, "item_id": 46414561, "url": "https://news.ycombinator.com/item?id=46414561", "by": "locknitpicker", "date": "2025-12-28", "version": null, "stance": "recommend", "quote": "Even Boost has those.", "excerpt": "> Ok, but sometimes you just need a single line in a finally and writing a class is more annoying I don't think you understand. If you need to run cleanup code whenever you need to destroy a resource, there is already a special member function designed to handle that: the destructor. Read up on RAII. It somehow you failed to understand RAII and basic resource management, you can still use one-liners. Read up on scope", "context": "", "use_case": "scope guard implementation", "switched_from": "", "story": "C++ says \"We have try at home.\""}, {"id": 741447920, "item_id": 46340495, "url": "https://news.ycombinator.com/item?id=46340495", "by": "StellarScience", "date": "2025-12-20", "version": null, "stance": "recommend", "quote": "we're sticking with Boost.", "excerpt": "C++ with Boost has let you grab a stacktrace anywhere in the application for years. But in April 2024 Boost 1.85 added a big new feature: stacktrace from arbitrary exception ( https://www.boost.org/releases/1.85.0/ ), which shows the call stack at the time of the throw. We added it to our codebase, and suddenly errors where exceptions were thrown became orders of magnitude easier to debug. C++23 added std::tracktrace", "context": "", "use_case": "exception stack traces", "switched_from": "", "story": "Log level 'error' should mean that something needs to be fixed"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 776782304, "item_id": 48548894, "url": "https://news.ycombinator.com/item?id=48548894", "by": "AmblingAvocado", "date": "2026-06-15", "version": null, "stance": "warn", "quote": "the headache of setting up a project and tooling to do that was enough to push me to other languages", "excerpt": "For context, I was working in C++ when C++0x was considered exotic and a bunch of actually useful stuff was in boost, basically making boost mandatory - and the headache of setting up a project and tooling to do that was enough to push me to other languages for small projects. When I picked C++ back up, I had a greenfield project I wanted to work on and I landed on this as a reference: https://github.com/AnthonyCalan", "context": "", "use_case": "", "switched_from": "", "story": null}, {"id": 752935856, "item_id": 47058491, "url": "https://news.ycombinator.com/item?id=47058491", "by": "throwaway81523", "date": "2026-02-18", "version": null, "stance": "warn", "quote": "I once tried to use Boost coroutines but it was too much headache and I switched to a different approach.", "excerpt": "I think there is some hope of a sane wrapper around C++20 coroutines that will make them easier to use. I saw a tutorial a while back mentioning that might eventually become part of the C++ standard. I once tried to use Boost coroutines but it was too much headache and I switched to a different approach. Erlang's processes and Goroutines are stackful unlike C++ coroutines. Erlang also forbids observable data sharing ", "context": "", "use_case": "C++ coroutines", "switched_from": "", "story": "Show HN: Writing a C++20M:N Scheduler from Scratch (EBR, Work-Stealing)"}]}], "who": [{"by": "StellarScience", "context": "small scientific software company", "url": "https://news.ycombinator.com/item?id=49929352", "date": "2026-10-02"}], "tags": [], "use_cases": ["c++ libraries", "polymorphic collections", "c++ web apps", "stable-address c++ containers", "company tech stack", "c++ utility library"], "compared": [{"slug": "cmake", "name": "CMake", "co": 7, "switched_from": 0, "switched_to": 0}, {"slug": "qt", "name": "Qt", "co": 7, "switched_from": 0, "switched_to": 0}, {"slug": "cuda", "name": "CUDA", "co": 7, "switched_from": 0, "switched_to": 0}, {"slug": "jenkins", "name": "Jenkins", "co": 7, "switched_from": 0, "switched_to": 0}, {"slug": "git", "name": "Git", "co": 7, "switched_from": 0, "switched_to": 0}, {"slug": "opengl", "name": "OpenGL", "co": 6, "switched_from": 0, "switched_to": 0}, {"slug": "react", "name": "React", "co": 5, "switched_from": 0, "switched_to": 0}, {"slug": "clang", "name": "Clang", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=49849409", "title": "Writing Efficient C++ Code (2013)", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=50148845", "title": "Composite objects and C++26 the std:polymorphic type", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=50058528", "title": "A Modern Web App in C", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=49922569", "title": "Ask HN: Who is hiring? (October 2026)", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=49674451", "title": "Reversing Factorio's RNG", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=49156683", "title": "Ask HN: Who is hiring? (August 2026)", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {"neutral": 1, "recommend": 1}, "2026-01": {"neutral": 1}, "2026-02": {"warn": 1}, "2026-03": {"neutral": 1}, "2026-04": {"neutral": 1}, "2026-05": {"neutral": 1}, "2026-06": {"neutral": 1, "warn": 1}, "2026-07": {"neutral": 1}, "2026-08": {"neutral": 1}, "2026-09": {"neutral": 2}, "2026-10": {"neutral": 1, "recommend": 2}}, "versions": [], "version_unnamed": 0, "family_ref": null, "runs_on": null, "lines": [], "quotes": [{"id": 803023824, "item_id": 50188989, "url": "https://news.ycombinator.com/item?id=50188989", "by": "nly", "date": "2026-10-21", "version": null, "stance": "recommend", "quote": "Boost polycollection.is better than what you propose", "excerpt": "Boost polycollection.is better than what you propose https://www.boost.org/doc/libs/latest/doc/html/poly_collection/an_efficient_polymorphic_data_st.html", "context": "", "use_case": "polymorphic collections", "switched_from": "", "story": "Composite objects and C++26 the std:polymorphic type"}, {"id": 800982736, "item_id": 50061421, "url": "https://news.ycombinator.com/item?id=50061421", "by": "rietta", "date": "2026-10-12", "version": null, "stance": "recommend", "quote": "There is Boost in C++. It is very mature and honestly modern C++ has a lot of extremely powerful stdlib functionality", "excerpt": "There is Boost in C++. It is very mature and honestly modern C++ has a lot of extremely powerful stdlib functionality and classes that will still be orders of magnitude more performant that the vast majority of the web app languages we use today. See https://www.boost.org/", "context": "", "use_case": "C++ web apps", "switched_from": "", "story": "A Modern Web App in C"}, {"id": 798869636, "item_id": 49929352, "url": "https://news.ycombinator.com/item?id=49929352", "by": "StellarScience", "date": "2026-10-02", "version": null, "stance": "neutral", "quote": "Boost", "excerpt": "Stellar Science | Hybrid (USA) Albuquerque NM, Washington DC (Tysons VA), Dayton OH | Full time, interns/co-ops | U.S. citizenship required | https://www.stellarscience.com Company: We're a small scientific software development company that develops custom scientific and engineering analysis applications in domains including: space situational awareness (monitoring the locations, health and status of on-orbit satelli", "context": "small scientific software company", "use_case": "C++ libraries", "switched_from": "", "story": "Ask HN: Who is hiring? (October 2026)"}, {"id": 798356224, "item_id": 49897264, "url": "https://news.ycombinator.com/item?id=49897264", "by": "MaxBarraclough", "date": "2026-09-29", "version": null, "stance": "recommend", "quote": "Boost offers intrusive_prt for this.", "excerpt": "> unlike a lot of high level languages, there isn't an extra allocation for a node structure. The node structure is a member of the structure being linked. That's good, but it seems like how-hanging fruit. Boost offers intrusive_prt for this. [0] make_shared goes half way, and performs a single allocation to return a shared_ptr to a new object. It eventually made its way from Boost to the standard. [1][2] See also [3", "context": "", "use_case": "", "switched_from": "", "story": "Writing Efficient C++ Code (2013)"}, {"id": 798026960, "item_id": 49876685, "url": "https://news.ycombinator.com/item?id=49876685", "by": "MaxBarraclough", "date": "2026-09-28", "version": null, "stance": "neutral", "quote": "The Boost libraries offer this though", "excerpt": "I'm not sure I follow the second point. Array-based solutions are able to guarantee that an element is never relocated, it's just that std::vector doesn't offer this guarantee. The Boost libraries offer this though, they call it stable_vector. https://www.boost.org/doc/libs/1_92_0/doc/html/container/non_standard_containers.html#container.non_standard_containers.stable_vector", "context": "", "use_case": "Stable-address C++ containers", "switched_from": "", "story": "Writing Efficient C++ Code (2013)"}, {"id": 795740912, "item_id": 49733807, "url": "https://news.ycombinator.com/item?id=49733807", "by": "Aardwolf", "date": "2026-09-16", "version": null, "stance": "neutral", "quote": "boost seems to know some now", "excerpt": "> We chose taus88 mainly because it is the fastest from boost\u2019s generators. That's an RNG from 1996. It seems neither recent C++ standards, nor boost, know anything about the modern PRNGs that are much faster yet better at passing test suites EDIT: Ok the above quote was from 2014, and boost seems to know some now! https://www.boost.org/doc/libs/latest/doc/html/boost_random/reference.html", "context": "", "use_case": "", "switched_from": "", "story": "Reversing Factorio's RNG"}, {"id": 786610565, "item_id": 49163160, "url": "https://news.ycombinator.com/item?id=49163160", "by": "StellarScience", "date": "2026-08-03", "version": null, "stance": "neutral", "quote": "git, OpenGL, CUDA, Boost, Jenkins", "excerpt": "Stellar Science | Hybrid (USA) Albuquerque NM, Washington DC (Tysons VA), Dayton OH | Full time, interns/co-ops | U.S. citizenship required | https://www.stellarscience.com Company: We're a small scientific software development company that develops custom scientific and engineering analysis applications in domains including: space situational awareness (monitoring the locations, health and status of on-orbit satelli", "context": "", "use_case": "Company tech stack", "switched_from": "", "story": "Ask HN: Who is hiring? (August 2026)"}, {"id": 780185365, "item_id": 48761585, "url": "https://news.ycombinator.com/item?id=48761585", "by": "StellarScience", "date": "2026-07-02", "version": null, "stance": "neutral", "quote": "Boost", "excerpt": "Stellar Science | Hybrid (USA) Albuquerque NM, Washington DC (Tysons VA), Dayton OH | Full time, interns/co-ops | U.S. citizenship required | https://www.stellarscience.com Company: We're a small scientific software development company that develops custom scientific and engineering analysis applications in domains including: space situational awareness (monitoring the locations, health and status of on-orbit satelli", "context": "", "use_case": "C++ libraries", "switched_from": "", "story": "Ask HN: Who is hiring? (July 2026)"}, {"id": 776782304, "item_id": 48548894, "url": "https://news.ycombinator.com/item?id=48548894", "by": "AmblingAvocado", "date": "2026-06-15", "version": null, "stance": "warn", "quote": "the headache of setting up a project and tooling to do that was enough to push me to other languages", "excerpt": "For context, I was working in C++ when C++0x was considered exotic and a bunch of actually useful stuff was in boost, basically making boost mandatory - and the headache of setting up a project and tooling to do that was enough to push me to other languages for small projects. When I picked C++ back up, I had a greenfield project I wanted to work on and I landed on this as a reference: https://github.com/AnthonyCalan", "context": "", "use_case": "", "switched_from": "", "story": null}, {"id": 773846677, "item_id": 48365417, "url": "https://news.ycombinator.com/item?id=48365417", "by": "StellarScience", "date": "2026-06-01", "version": null, "stance": "neutral", "quote": "Lots of C++23, Qt 6.9, CMake, git, OpenGL, CUDA, Boost, Jenkins.", "excerpt": "Stellar Science | Hybrid (USA) Albuquerque NM, Washington DC (Tysons VA), Dayton OH | Full time, interns/co-ops | U.S. citizenship required | https://www.stellarscience.com Company: We're a small scientific software development company that develops custom scientific and engineering analysis applications in domains including: space situational awareness (monitoring the locations, health and status of on-orbit satelli", "context": "", "use_case": "C++ libraries", "switched_from": "", "story": "Ask HN: Who is hiring? (June 2026)"}, {"id": 771389888, "item_id": 48211868, "url": "https://news.ycombinator.com/item?id=48211868", "by": "bsenftner", "date": "2026-05-20", "version": null, "stance": "neutral", "quote": "we used Boost in a C++ code base", "excerpt": "I worked at a shop where we used Boost in a C++ code base that the only use of C++ was the harness to use Boost. After that, it was all C, object-styled C, as that code base started before C++ compilers were not a template overlay on C.", "context": "", "use_case": "C++ utility library", "switched_from": "", "story": "No way to parse integers in C"}, {"id": 761757589, "item_id": 47609849, "url": "https://news.ycombinator.com/item?id=47609849", "by": "StellarScience", "date": "2026-04-01", "version": null, "stance": "neutral", "quote": "Technologies: Lots of C++23, Qt 6.9, CMake, git, OpenGL, CUDA, Boost, Jenkins.", "excerpt": "Stellar Science | Hybrid (USA) Albuquerque NM, Washington DC (Tysons VA), Dayton OH | Full time, interns/co-ops | U.S. citizenship required | https://www.stellarscience.com Company: We're a small scientific software development company that develops custom scientific and engineering analysis applications in domains including: space situational awareness (monitoring the locations, health and status of on-orbit satelli", "context": "", "use_case": "", "switched_from": "", "story": "Ask HN: Who is hiring? (April 2026)"}, {"id": 760005792, "item_id": 47500362, "url": "https://news.ycombinator.com/item?id=47500362", "by": "leoc", "date": "2026-03-24", "version": null, "stance": "neutral", "quote": "Boost actually uses 'perlex'", "excerpt": "'PCRE' never really caught on broadly, unfortunately. It seems that Boost actually uses 'perlex' https://www.boost.org/doc/libs/1_31_0/libs/regex/doc/syntax_option_type.html .", "context": "", "use_case": "", "switched_from": "", "story": "The quadratic problem nobody fixed"}, {"id": 752935856, "item_id": 47058491, "url": "https://news.ycombinator.com/item?id=47058491", "by": "throwaway81523", "date": "2026-02-18", "version": null, "stance": "warn", "quote": "I once tried to use Boost coroutines but it was too much headache and I switched to a different approach.", "excerpt": "I think there is some hope of a sane wrapper around C++20 coroutines that will make them easier to use. I saw a tutorial a while back mentioning that might eventually become part of the C++ standard. I once tried to use Boost coroutines but it was too much headache and I switched to a different approach. Erlang's processes and Goroutines are stackful unlike C++ coroutines. Erlang also forbids observable data sharing ", "context": "", "use_case": "C++ coroutines", "switched_from": "", "story": "Show HN: Writing a C++20M:N Scheduler from Scratch (EBR, Work-Stealing)"}, {"id": 743462229, "item_id": 46466389, "url": "https://news.ycombinator.com/item?id=46466389", "by": "StellarScience", "date": "2026-01-02", "version": null, "stance": "neutral", "quote": "Mostly C++23, Qt 6.9, CMake, git, OpenGL, CUDA, Boost, Jenkins.", "excerpt": "Stellar Science | Hybrid (USA) Albuquerque NM, Washington DC (Tysons VA), Dayton OH | Full time, interns/co-ops | U.S. citizenship required | https://www.stellarscience.com Company: We're a small scientific software development company that develops custom scientific and engineering analysis applications in domains including: space situational awareness (monitoring the locations, health and status of on-orbit satelli", "context": "Small scientific software company hiring", "use_case": "", "switched_from": "", "story": "Ask HN: Who is hiring? (January 2026)"}, {"id": 742632976, "item_id": 46414561, "url": "https://news.ycombinator.com/item?id=46414561", "by": "locknitpicker", "date": "2025-12-28", "version": null, "stance": "recommend", "quote": "Even Boost has those.", "excerpt": "> Ok, but sometimes you just need a single line in a finally and writing a class is more annoying I don't think you understand. If you need to run cleanup code whenever you need to destroy a resource, there is already a special member function designed to handle that: the destructor. Read up on RAII. It somehow you failed to understand RAII and basic resource management, you can still use one-liners. Read up on scope", "context": "", "use_case": "scope guard implementation", "switched_from": "", "story": "C++ says \"We have try at home.\""}, {"id": 741447920, "item_id": 46340495, "url": "https://news.ycombinator.com/item?id=46340495", "by": "StellarScience", "date": "2025-12-20", "version": null, "stance": "recommend", "quote": "we're sticking with Boost.", "excerpt": "C++ with Boost has let you grab a stacktrace anywhere in the application for years. But in April 2024 Boost 1.85 added a big new feature: stacktrace from arbitrary exception ( https://www.boost.org/releases/1.85.0/ ), which shows the call stack at the time of the throw. We added it to our codebase, and suddenly errors where exceptions were thrown became orders of magnitude easier to debug. C++23 added std::tracktrace", "context": "", "use_case": "exception stack traces", "switched_from": "", "story": "Log level 'error' should mean that something needs to be fixed"}, {"id": 737759861, "item_id": 46109991, "url": "https://news.ycombinator.com/item?id=46109991", "by": "StellarScience", "date": "2025-12-01", "version": null, "stance": "neutral", "quote": "Mostly C++23, Qt 6.9, CMake, git, OpenGL, CUDA, Boost, Jenkins", "excerpt": "Stellar Science | Hybrid (USA) Albuquerque NM, Washington DC (Tysons VA), Dayton OH | Full time, interns/co-ops | U.S. citizenship required | https://www.stellarscience.com Company: We're a small scientific software development company that develops custom scientific and engineering analysis applications in domains including: space situational awareness (monitoring the locations, health and status of on-orbit satelli", "context": "", "use_case": "", "switched_from": "", "story": "Ask HN: Who is hiring? (December 2025)"}]}