[HN Gopher] C++ Cheat Sheets
___________________________________________________________________
C++ Cheat Sheets
Author : ibobev
Score : 85 points
Date : 2022-03-06 18:41 UTC (4 hours ago)
(HTM) web link (hackingcpp.com)
(TXT) w3m dump (hackingcpp.com)
| BeetleB wrote:
| This should be titled "C++ Algorithms Library Cheat Sheet". It is
| specifically about the algorithms functions in the standard
| library.
| bialpio wrote:
| There's a bunch of categories, the first one is indeed standard
| algorithms. Full list: Standard Algorithms, Standard
| Randomness, Standard Sequence Views, Standard Containers,
| Standard Utilities, Language Mechanisms, Libraries, Design
| Guidelines, Engineering, Terminology. Seems fairly
| comprehensive to me.
| jll29 wrote:
| I'm usually not a fan of "cheat sheets" (HTML online
| documentation, man pages and even real books are quickly at hand)
| - but this is a useful (and pretty) synopsis of many useful
| library functions and recent additions to C++, thanks.
| woodruffw wrote:
| In a similar vein: I've had the "initialization in C++17" chart
| taped above my desk for a 3 years now[1].
|
| [1]: https://timur.audio/initialisation-in-c17-the-matrix
| echelon wrote:
| This is fantastic, thanks!
| itsmenow wrote:
| wow, this is really fantastic! The whole site seems quite useful
| in fact.
| jokoon wrote:
| Wow, this is really good, there are still things I can learn.
|
| C++ really has a lot of good things. It's just a shame it's so
| slow to compile.
|
| I'm curious if anybody is working to make C++ faster to compile.
| Even if it was a subset of the language, with some features
| removed, it would be good enough for me.
| jcelerier wrote:
| * Compile with clang, link with mold or at least lld. mold can
| link gigabyte-sized binaries in, like, one second
|
| * Use ninja instead of make
|
| * Use PCH
|
| * -gsplit-dwarf
| techas wrote:
| Off topic. Could you recommend an ide to work with c++?
| jcelerier wrote:
| I use Qt Creator on every platform
| ibobev wrote:
| Microsoft Visual Studio for Windows and QtCreator for
| Linux.
| jll29 wrote:
| CLion from JetBrains and Microsoft Visual Code are the best
| commercial ones for Linux, NetBeans is a free (as in
| freedeom and open source) one (that also supports many
| other languages like Java and Python).
|
| What I don't recommend is Eclipse - it's complex and
| confusing for beginners (but a bit faster than some
| others).
| MetricExpansion wrote:
| I didn't think NetBeans supported C++ anymore?
| dwrodri wrote:
| I can testify to JetBrains products, they're quite good. I
| haven't used CLion in a few years because I don't like
| depending on a dev tooling that costs money. I use VSCode
| because I hop between Python, Bash, Go, C, and C++. That
| being said, CLion definitely offers a much better debugging
| experience, even when VSCode has all the right plugins.
| whimsicalism wrote:
| CLion, VSCode, Vim - in order of decreasing tooling.
| woodruffw wrote:
| This is all solid advice (particularly using a faster
| linker).
|
| IME, the single best way to reduce your C++ compile times is
| to _compile less code_ :
|
| * Remove all unnecessary headers. Template expansion is slow,
| and preprocessing is even slower. Some of the standard
| includes (like `<regex>` and `<iostream>`) are notorious for
| slowing individual translation units to a crawl. `#pragma
| once` for your own headers also helps with cpp-time
| performance.
|
| * Forward-declare as much as you can. Forward type
| declarations mean that the compiler doesn't need to process
| all of `Foo` when it sees `Foo&` or `Foo _`.
|
| _ Use pImpl wherever you can (and makes sense). Private
| implementations similarly reduce the amount of code the
| compiler needs to analyze.
|
| For better or worse, the current winds suggest that C++
| compilation times will only continue to get worse (more
| constexpr/consteval, even more complex templating
| features/concepts, etc.).
___________________________________________________________________
(page generated 2022-03-06 23:00 UTC)