diff options
author | Aki <please@ignore.pl> | 2024-08-29 16:07:36 +0200 |
---|---|---|
committer | Aki <please@ignore.pl> | 2024-08-29 16:07:36 +0200 |
commit | 67c3771a2bf27214d481c63115cd64db768cfbfb (patch) | |
tree | b515ef703da68c581f624ad8ab77c7dd24b0dfbd | |
parent | 9f8d20c919922f6fdcc12621b0bb44122fe01f11 (diff) | |
download | ignore.pl-67c3771a2bf27214d481c63115cd64db768cfbfb.zip ignore.pl-67c3771a2bf27214d481c63115cd64db768cfbfb.tar.gz ignore.pl-67c3771a2bf27214d481c63115cd64db768cfbfb.tar.bz2 |
Tweaked C++ list
- Merged last two entries together
- Added more conferences
- Removed the other standard reference page
-rw-r--r-- | where_to_learn_cxx.html | 76 |
1 files changed, 45 insertions, 31 deletions
diff --git a/where_to_learn_cxx.html b/where_to_learn_cxx.html index d299444..4fd9263 100644 --- a/where_to_learn_cxx.html +++ b/where_to_learn_cxx.html @@ -37,8 +37,7 @@ for each entry... <li><a class="always-fresh" href="#core-guidelines">Core Guidelines</a> <li><a class="always-fresh" href="#code-style-guidelines">Code Style Guidelines</a> <li><a class="always-fresh" href="#interactive-exploration">Interactive Exploration</a> -<li><a class="always-fresh" href="#classes-courses-and-tutorials">Classes, Courses and Tutorials</a> -<li><a class="always-fresh" href="#stack-overflow-and-llms">Stack Overflow and LLMs</a> +<li><a class="always-fresh" href="#other">Other</a> </ol> @@ -58,23 +57,20 @@ and to solidify your foundations. <h2 id="standard-references">Standard References</h2> -<p>These references explain C++ standard so that it can be consumed easier by language and library users. They may or -may not reference implementation-specific details. +<p>The intent is to translate the legal language from the standard to a more programmer friendly language complemented +with examples, compatibility matrices, and a good number of other useful resources. Currently there is only one +worthwhile community-driven page: <ul> <li><a href="https://en.cppreference.com/w/">cppreference.com</a> -<li><a href="https://cplusplus.com/reference/">cplusplus.com</a> </ul> -<p>You are likely to use them the most compared to any other entry in this list. This is the case for me. -<p>Both of these sites are also designed to act as an index for other resources, including but not limited to, standard -compiler support matrices, tutorials, technical specifications, proposal or experimental references. If you never did, I -encourage you to grab something to drink and explore one of them a bit. +<p>You are likely to use it the most compared to any other entry in this list. This is the case for me. <h2 id="proposals">Proposals</h2> -<p>Proposals are my favourites. They are C++ standard committee papers that propose changes to the language or standard -library. Their goals are to present an idea in understandable way and reason it. Make it look like a good idea. This -part of their nature makes them often better to read than the actual C++ standard. This is especially evident when they -are coming from the outside of usual working group and/or compiler circles. +<p>Proposals are my favourites for filling the "would you like to know more" gap. They are C++ standard committee papers +that propose changes to the language or standard library. Their goals are to present an idea in understandable way, +reason it, and make it look good. This part of their nature makes them often better to read than the actual C++ +standard. This is especially evident when they are coming from the outside of the working group and/or compiler circles. <p>You can find them at <a href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/">C++ Standards Committee Papers</a> index. <p>Alternatively, if you are looking for proposal regarding a particular feature, you can: @@ -93,9 +89,9 @@ Papers</a> index. <h2 id="the-standard">The Standard</h2> <p>Also known as <strong>ISO/IEC 14882</strong>.</p> <img src="where_to_learn_cxx-2.png" alt="c++ logo"> -<p>This is the primary source. Or rather the working draft of the primary source. Standard is intended to define -requirements for compiler and library implementations. It is not necessarily intended as your day-to-day reference -document. Nonetheless, it is useful because it can provide you with an authoritative answer. +<p><strong>This is the primary source</strong>. Or rather the working draft of the primary source. Standard is intended +to define requirements for compiler and library implementations. It is not necessarily intended as your day-to-day +reference document. Nonetheless, it is useful because it can provide you with an authoritative answer. <p>You can buy the actual standard revisions at the ISO Store. <p>Draft is available at <a href="https://eel.is/c++draft/">eel.is/c++draft</a>. <p>Standard C++ has a homepage at <a href="https://isocpp.org/">isocpp.org</a> with a good amount of useful resources, @@ -132,7 +128,22 @@ behaviour or details, options, recommendations. <li><code>/usr/include</code> </ol> <p>Of course, depending on your compiler, library provider and targets these will vary. Consult your compiler -documentation. +documentation. With GCC you can provide a <code>-v</code> flag to command and find the applicable paths, for example: +<pre> +$ c++ -v example.cpp -o example +Using built-in specs. +... +#include "..." search starts here: +#include <...> search starts here: + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1 + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/x86_64-pc-linux-gnu + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/backward + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include + /usr/local/include + /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed + /usr/include +End of search list. +</pre> <p>They may feel hit-or-miss. It gets especially bad when dealing with multi-target back-compatible headers as they quickly devolve into macro madness. Yet, they are your exact specification of what you are dealing with. @@ -164,8 +175,12 @@ recommendations. Even if you don't plan using Boost, it may provide you with sol <p>I'm socially awkward but I do like to listen to knowledgeable people. Even better if I'm interested in the topic they talk about. <b>Isocpp.org</b> maintains <a href="https://isocpp.org/wiki/faq/conferences-worldwide">a list of worldwide conferences</a>. -<p><a href="https://www.youtube.com/@CppCon">CppCon YouTube channel</a> is probably the best place to start if you are -looking for talks. They have a large variety of them: deep dives, lightning talks, back to basics, etc. +<p>Here are channels with recordings from C++ or around C++ conferences: +<ul> +<li><a href="https://www.youtube.com/@CppCon">CppCon</a> (YouTube) +<li><a href="https://www.youtube.com/@ACCUConf">ACCU Conference</a> (YouTube) +<li><a href="https://www.youtube.com/@BoostCon">C++Now</a> (YouTube) +</ul> <h2 id="core-guidelines">Core Guidelines</h2> @@ -200,17 +215,16 @@ In general, building minimal examples to see certain behaviours is a decent debu debuggers are also an option for exploration. -<h2 id="classes-courses-and-tutorials">Classes, Courses and Tutorials</h2> -<p>I do not have any specific recommendations here at the moment. -<p>Prefer university-driven courses if available. Next in line are any free online tutorials. Always complement with a -book or technical documentation. Lastly, paid private "schools", online classes and bootcamps. I heard mixed opinions -about them in general, so research your options. - - -<h2 id="stack-overflow-and-llms">Stack Overflow and LLMs</h2> -<p>This is an equivalent to learning how to disarm explosives on a minefield with no tools whatsoever. Use these if you -don't know how to bite a certain problem, if you look for a very specific recommendation, or if you have forgotten -something trivial. You may find good answers. Always look or ask for answers with references to documentation or find -relevant sources yourself. On Stack Overflow you may even find authoritative answers. +<h2 id="other">Other</h2> +<p>I don't have much to say about these. They listed here only to avoid questions about them. +<ul> +<li>Classes +<li>Courses +<li>Tutorials +<li>Stack Overflow +<li>LLMs +</ul> +<p>Older revision of this article had some additional notes, but even at the time of writing I was struggling to see any +good points in my comments. </article> <script src="https://stats.ignore.pl/track.js"></script> |