{"id":13436655,"url":"https://github.com/tip-of-the-week/cpp","last_synced_at":"2025-05-14T11:12:16.254Z","repository":{"id":37960628,"uuid":"285890989","full_name":"tip-of-the-week/cpp","owner":"tip-of-the-week","description":"C++ Tip Of The Week","archived":false,"fork":false,"pushed_at":"2025-04-25T21:31:42.000Z","size":2530,"stargazers_count":1611,"open_issues_count":0,"forks_count":73,"subscribers_count":140,"default_branch":"main","last_synced_at":"2025-04-25T22:27:02.484Z","etag":null,"topics":["cpp11","cpp14","cpp17","cpp20","cpp23","cpp98"],"latest_commit_sha":null,"homepage":"https://tip-of-the-week.github.io/cpp/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tip-of-the-week.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-08-07T17:59:59.000Z","updated_at":"2025-04-25T21:31:45.000Z","dependencies_parsed_at":"2023-02-12T17:30:54.617Z","dependency_job_id":"ccd2f7db-1892-4579-8c91-993be46cda3e","html_url":"https://github.com/tip-of-the-week/cpp","commit_stats":{"total_commits":513,"total_committers":27,"mean_commits":19.0,"dds":0.5419103313840157,"last_synced_commit":"40095270b11503fb2680f55a4b173a7a7969d9c6"},"previous_names":["tip-of-the-week/cpp_tip_of_the_week","quantlabfinancial/cpp_tip_of_the_week"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tip-of-the-week%2Fcpp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tip-of-the-week%2Fcpp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tip-of-the-week%2Fcpp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tip-of-the-week%2Fcpp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tip-of-the-week","download_url":"https://codeload.github.com/tip-of-the-week/cpp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254129525,"owners_count":22019628,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp11","cpp14","cpp17","cpp20","cpp23","cpp98"],"created_at":"2024-07-31T03:00:51.009Z","updated_at":"2025-05-14T11:12:11.241Z","avatar_url":"https://github.com/tip-of-the-week.png","language":"C++","funding_links":[],"categories":["HarmonyOS"],"sub_categories":["Windows Manager"],"readme":"## C++ Tip of The Week\n---\n\n\u003e Your weekly dose of modern C++ challenge (Release every `Sunday`).\n\n* https://tip-of-the-week.github.io/cpp\n\n\u003e #### FAQ\n\n  * How to contribute/add a solution?\n  \n    * Contributions are always very much appreciated. Just create a [Pull Request](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request) with your solution.\n  \n  * `RSS` feed\n  \n    * https://github.com/tip-of-the-week/cpp/blob/master/tips/rss/feed.xml\n\n---\n\n### Tips\n\n\u003e C++26\n\n* [Did you know that C++26 added structured binding declaration as a condition?](https://github.com/tip-of-the-week/cpp/blob/master/tips/376.md)\n* [Did you know that C++26 added support constexpr placement new?](https://github.com/tip-of-the-week/cpp/blob/master/tips/375.md)\n* [Did you know that C++26 added `= delete(\"should have a reason\")`?](https://github.com/tip-of-the-week/cpp/blob/master/tips/371.md)\n* [Did you know that C++26 added `span.at`?](https://github.com/tip-of-the-week/cpp/blob/master/tips/370.md)\n* [Did you know about C++26 simd proposal (1/N)?](https://github.com/tip-of-the-week/cpp/blob/master/tips/367.md)\n* [Did you know about C++26 simd proposal (2/N)?](https://github.com/tip-of-the-week/cpp/blob/master/tips/374.md)\n* [Did you know about C++26 static reflection proposal (1/N)?](https://github.com/tip-of-the-week/cpp/blob/master/tips/361.md)\n* [Did you know about C++26 static reflection proposal (2/N)?](https://github.com/tip-of-the-week/cpp/blob/master/tips/362.md)\n* [Did you know about C++26 static reflection proposal (3/N)?](https://github.com/tip-of-the-week/cpp/blob/master/tips/363.md)\n* [Did you know about C++26 static reflection proposal (4/N)?](https://github.com/tip-of-the-week/cpp/blob/master/tips/364.md)\n* [Did you know about C++26 static reflection proposal (5/N)?](https://github.com/tip-of-the-week/cpp/blob/master/tips/365.md)\n* [Did you know about C++26 static reflection proposal (6/N)?](https://github.com/tip-of-the-week/cpp/blob/master/tips/366.md)\n* [Did you know about C++26 static reflection proposal (7/N)?](https://github.com/tip-of-the-week/cpp/blob/master/tips/372.md)\n* [Did you know that C++26 added `Pack Indexing`?](https://github.com/tip-of-the-week/cpp/blob/master/tips/358.md)\n* [Did you know about C++26 proposal - `variadic friends`?](https://github.com/tip-of-the-week/cpp/blob/master/tips/352.md)\n* [Did you know about C++26 proposal - `inplace_vector`?](https://github.com/tip-of-the-week/cpp/blob/master/tips/351.md)\n* [Did you know about C++26 proposal - Aggregates are named tuples?](https://github.com/tip-of-the-week/cpp/blob/master/tips/350.md)\n* [Did you know that C++26 added new SI prefixes?](https://github.com/tip-of-the-week/cpp/blob/master/tips/349.md)\n* [Did you know that C++26 changed arithmetic overloads of std::to_string and std::to_wstring to use std::format?](https://github.com/tip-of-the-week/cpp/blob/master/tips/348.md)\n* [Did you know that C++26 added more constexpr for `\u003ccmath\u003e` and `\u003ccomplex\u003e`?](https://github.com/tip-of-the-week/cpp/blob/master/tips/347.md)\n* [Did you know that C++26 added testing for success or failure of `\u003ccharconv\u003e` functions?](https://github.com/tip-of-the-week/cpp/blob/master/tips/346.md)\n* [Did you know that C++26 allows constexpr cast from `void*`?](https://github.com/tip-of-the-week/cpp/blob/master/tips/345.md)\n* [Did you know that C++26 added `Member visit`?](https://github.com/tip-of-the-week/cpp/blob/master/tips/344.md)\n* [Did you know that C++26 std.format added formatting pointers ability?](https://github.com/tip-of-the-week/cpp/blob/master/tips/343.md)\n* [Did you know that C++26 added 'A nice placeholder with no name'?](https://github.com/tip-of-the-week/cpp/blob/master/tips/342.md)\n* [Did you know that C++26 added user-generated static_assert messages?](https://github.com/tip-of-the-week/cpp/blob/master/tips/341.md)\n* [Did you know that C++26 added bind front and back to NTTP callables?](https://github.com/tip-of-the-week/cpp/blob/master/tips/340.md)\n* [Did you know that C++26 added `@, $, and `` to the basic character set?](https://github.com/tip-of-the-week/cpp/blob/master/tips/339.md)\n\n\u003e C++23\n\n* [Did you know that C++23 added constexpr `bitset`?](https://github.com/tip-of-the-week/cpp/blob/master/tips/373.md)\n* [Did you know that C++23 added Explicit lifetime management (1/N)?](https://github.com/tip-of-the-week/cpp/blob/master/tips/368.md)\n* [Did you know that C++23 added spanstream - A strstream replacement using span\u003ccharT\u003e as buffer?](https://github.com/tip-of-the-week/cpp/blob/master/tips/360.md)\n* [Did you know that C++23 added standard support for `flat_map`?](https://github.com/tip-of-the-week/cpp/blob/master/tips/357.md)\n* [Did you know that C++23 added range `string_view` constructor?](https://github.com/tip-of-the-week/cpp/blob/master/tips/354.md)\n* [Did you know that C++23 added `std::invoke_r`?](https://github.com/tip-of-the-week/cpp/blob/master/tips/334.md)\n* [Did you know that C++23 extended floating-point types?](https://github.com/tip-of-the-week/cpp/blob/master/tips/328.md)\n* [Did you know that C++23 deprecated std::aligned_storage and std::aligned_union?](https://github.com/tip-of-the-week/cpp/blob/master/tips/326.md)\n* [Did you know that C++23 added Monadic operations for std::expected?](https://github.com/tip-of-the-week/cpp/blob/master/tips/322.md)\n* [Did you know that C++23 added support for formatting ranges?](https://github.com/tip-of-the-week/cpp/blob/master/tips/321.md)\n* [Did you know that `std::unique_ptr` can be constexpr in C++23?](https://github.com/tip-of-the-week/cpp/blob/master/tips/318.md)\n* [Did you know that C++23 added static operator[]?](https://github.com/tip-of-the-week/cpp/blob/master/tips/307.md)\n* [Did you know that functions in `\u003ccharconv\u003e` are constexpr since C++23?](https://github.com/tip-of-the-week/cpp/blob/master/tips/301.md)\n* [Did you know that C++23 added support for constexpr std::bitset?](https://github.com/tip-of-the-week/cpp/blob/master/tips/300.md)\n* [Did you know that C++23 added static operator()?](https://github.com/tip-of-the-week/cpp/blob/master/tips/298.md)\n* [Did you know that C++23 added `stacktrace` library?](https://github.com/tip-of-the-week/cpp/blob/master/tips/295.md)\n* [Did you know that [[assume]] attribute has been accepted to C++23?](https://github.com/tip-of-the-week/cpp/blob/master/tips/289.md)\n* [Did you know that C++23 added `auto(x): decay-copy in the language`?](https://github.com/tip-of-the-week/cpp/blob/master/tips/287.md)\n* [Did you know about C++23 ispanstream - A strstream replacement using span\u003ccharT\u003e as buffer?](https://github.com/tip-of-the-week/cpp/blob/master/tips/284.md)\n* [Did you know that C++23 added `ranges::to` (conversion from ranges to containers)?](https://github.com/tip-of-the-week/cpp/blob/master/tips/283.md)\n* [Did you know that C++23 added Literal Suffix for (signed) size_t?](https://github.com/tip-of-the-week/cpp/blob/master/tips/278.md)\n* [Did you know that C++23 added `bind_back` to simplify writing higher order functions?](https://github.com/tip-of-the-week/cpp/blob/master/tips/276.md)\n* [Did you know about C++23 proposal `Structured Bindings can introduce a Pack`?](https://github.com/tip-of-the-week/cpp/blob/master/tips/274.md)\n* [Did you know that C++23 added `std::to_underlying`?](https://github.com/tip-of-the-week/cpp/blob/master/tips/270.md)\n* [Did you know that C++23 added `std::unreachable`?](https://github.com/tip-of-the-week/cpp/blob/master/tips/267.md)\n* [Did you know that C++23 added Attributes on Lambda-Expressions?](https://github.com/tip-of-the-week/cpp/blob/master/tips/265.md)\n* [Did you know that C++23 added std::byteswap to swap bytes?](https://github.com/tip-of-the-week/cpp/blob/master/tips/263.md)\n* [Did you know that type_info equality operator is constexpr in C++23?](https://github.com/tip-of-the-week/cpp/blob/master/tips/262.md)\n* [Did you know that C++23 added Monadic operations for std::optional?](https://github.com/tip-of-the-week/cpp/blob/master/tips/261.md)\n* [Did you know that C++23 added std::move_only_function?](https://github.com/tip-of-the-week/cpp/blob/master/tips/260.md)\n* [Did you know that C++23 added basic_string::resize_and_overwrite?](https://github.com/tip-of-the-week/cpp/blob/master/tips/252.md)\n* [Did you know that C++23 allows extended init-statement with alias-declaration in the for loop?](https://github.com/tip-of-the-week/cpp/blob/master/tips/249.md)\n* [Did you know that CRTP can be implemented with C++23 `Deducing this`?](https://github.com/tip-of-the-week/cpp/blob/master/tips/248.md)\n* [Did you know that `Deducing this` proposal has been voted out into C++23?](https://github.com/tip-of-the-week/cpp/blob/master/tips/247.md)\n* [Did you know that C++23 added `if consteval`?](https://github.com/tip-of-the-week/cpp/blob/master/tips/230.md)\n* [Did you know about C++23 feature which adds support for inheriting from std::variant?](https://github.com/tip-of-the-week/cpp/blob/master/tips/226.md)\n* [Did you know about C++23 feature which removes unnecessary ()’s from C++ lambdas?](https://github.com/tip-of-the-week/cpp/blob/master/tips/225.md)\n* [Did you know that C++23 added `contains` function to `string_view`?](https://github.com/tip-of-the-week/cpp/blob/master/tips/222.md)\n* [Did you know that C++23 added `is_scoped_enum` type trait to detect whether an enum is scoped?](https://github.com/tip-of-the-week/cpp/blob/master/tips/200.md)\n* [Did you know about C++23 proposal to add `views::enumerate`?](https://github.com/tip-of-the-week/cpp/blob/master/tips/194.md)\n* [Did you know that C++23 permitts static constexpr variables in constexpr functions?](https://github.com/tip-of-the-week/cpp/blob/master/tips/310.md)\n* [Did you know about proposal to add support for recursive lambdas?](https://github.com/tip-of-the-week/cpp/blob/master/tips/206.md)\n* [Did you know about proposal to add Compile Time Regular Expressions?](https://github.com/tip-of-the-week/cpp/blob/master/tips/188.md)\n\n\u003e C++20\n\n* [Did you know that C++20 `source_location` can be used to get the member names?](https://github.com/tip-of-the-week/cpp/blob/master/tips/359.md)\n* [Did you know that C++20's `no_unique_address` can be used to find unique types?](https://github.com/tip-of-the-week/cpp/blob/master/tips/356.md)\n* [Did you know that C++20 added constinit keyword?](https://github.com/tip-of-the-week/cpp/blob/master/tips/355.md)\n* [Did you know about C++20 `std::next_permutation` algorithm?](https://github.com/tip-of-the-week/cpp/blob/master/tips/338.md)\n* [Did you know that C++20 added `std::span`?](https://github.com/tip-of-the-week/cpp/blob/master/tips/333.md)\n* [Did you know that with C++20 you can pass concepts?](https://github.com/tip-of-the-week/cpp/blob/master/tips/317.md)\n* [Did you know about C++20 `is_layout_compatible_v` type_traits?](https://github.com/tip-of-the-week/cpp/blob/master/tips/315.md)\n* [Did you know that C++20 added support for Unevaluated asm-declaration in constexpr functions?](https://github.com/tip-of-the-week/cpp/blob/master/tips/312.md)\n* [Did you know that C++20 added support for constexpr std::vector?](https://github.com/tip-of-the-week/cpp/blob/master/tips/309.md)\n* [Did you know that C++20 concepts can be used to avoid implicit conversions?](https://github.com/tip-of-the-week/cpp/blob/master/tips/299.md)\n* [Did you know that C++20 introduced coroutines? (co_await)](https://github.com/tip-of-the-week/cpp/blob/master/tips/297.md)\n* [Did you know that C++20 introduced coroutines? (co_yield)](https://github.com/tip-of-the-week/cpp/blob/master/tips/296.md)\n* [Did you know that with C++20 (constexpr containers) TMP can be achieved with STL?](https://github.com/tip-of-the-week/cpp/blob/master/tips/294.md)\n* [Did you know about C++20 template specialization with concepts?](https://github.com/tip-of-the-week/cpp/blob/master/tips/285.md)\n* [Did you know about introduced in C++20 `object concepts`?](https://github.com/tip-of-the-week/cpp/blob/master/tips/282.md)\n* [Did you know that C++20 made `std::string` constexpr?](https://github.com/tip-of-the-week/cpp/blob/master/tips/279.md)\n* [Did you know that C++20 added std::ranges::{all_of, any_of, none_of} algorithms?](https://github.com/tip-of-the-week/cpp/blob/master/tips/272.md)\n* [Did you know that C++20 added support for floating point values as non-type template parameters](https://github.com/tip-of-the-week/cpp/blob/master/tips/271.md)\n* [Did you know that C++20 added `std::erase_if` for std::map and std::vector?](https://github.com/tip-of-the-week/cpp/blob/master/tips/268.md)\n* [Did you know that C++20 added `__VA_OPT__` for comma omission and comma deletion?](https://github.com/tip-of-the-week/cpp/blob/master/tips/264.md)\n* [Did you know that C++20 extends support for data time utilities?](https://github.com/tip-of-the-week/cpp/blob/master/tips/253.md)\n* [Did you know that C++20 added `type_identity` which implements the identity metafunction?](https://github.com/tip-of-the-week/cpp/blob/master/tips/251.md)\n* [Did you know that C++20 `[[no_unique_address]]` can be used to implement lazy/fast/memory efficient](https://github.com/tip-of-the-week/cpp/blob/master/tips/235.md)\n* [Did you know that C++20 made `typename` more optional?](https://github.com/tip-of-the-week/cpp/blob/master/tips/233.md)\n* [Did you know that C++20 `std::to_array` supports creating from string literals?](https://github.com/tip-of-the-week/cpp/blob/master/tips/205.md)\n* [Did you know that C++20 added `Using Enum` which introduces the enumerator names of the named enumeratio](https://github.com/tip-of-the-week/cpp/blob/master/tips/202.md)\n* [Did you know that C++20 added support for `[[no_unique_address]]` attribute?](https://github.com/tip-of-the-week/cpp/blob/master/tips/195.md)\n* [Did you know that C++20 added support for `constexpr new`?](https://github.com/tip-of-the-week/cpp/blob/master/tips/193.md)\n* [Did you know that C++20 added `ostream_joiner` that writes successive objects into the basic_ostr](https://github.com/tip-of-the-week/cpp/blob/master/tips/190.md)\n* [Did you know that Formatted output has been accepted into C++20?](https://github.com/tip-of-the-week/cpp/blob/master/tips/183.md)\n* [Did you know C++2X Pattern Matching can be used for run-time dispatching?](https://github.com/tip-of-the-week/cpp/blob/master/tips/215.md)\n* [Did you know about C++2X Pattern Matching proposal?](https://github.com/tip-of-the-week/cpp/blob/master/tips/211.md)\n* [Did you know about the proposal to add Non-terminal variadic template parameters?](https://github.com/tip-of-the-week/cpp/blob/master/tips/182.md)\n* [Did you know about the proposal to add constexpr function parameters?](https://github.com/tip-of-the-week/cpp/blob/master/tips/207.md)\n* [Did you know about `Design By Introspection`?](https://github.com/tip-of-the-week/cpp/blob/master/tips/210.md)\n* [Did you know that you can customize formatter for your classes with std::format?](https://github.com/tip-of-the-week/cpp/blob/master/tips/184.md)\n* [Did you know Non-Type Template Parameters (NTTP)?](https://github.com/tip-of-the-week/cpp/blob/master/tips/186.md)\n* [Did you know that static reflection supports introspecting constructors?](https://github.com/tip-of-the-week/cpp/blob/master/tips/259.md)\n* [Did you know that static reflection can be used to invoke functions with named parameters?](https://github.com/tip-of-the-week/cpp/blob/master/tips/258.md)\n* [Did you know that static reflection can be used to implement row polymorphism?](https://github.com/tip-of-the-week/cpp/blob/master/tips/257.md)\n* [Did you know that static reflection proposal for C++2X has mirror/value based interface?](https://github.com/tip-of-the-week/cpp/blob/master/tips/256.md)\n* [Did you know that static reflection proposal for C++2X can reflect functions?](https://github.com/tip-of-the-week/cpp/blob/master/tips/255.md)\n* [Did you know about static reflection proposal for C++2X?](https://github.com/tip-of-the-week/cpp/blob/master/tips/254.md)\n* [Did you know about the proposal to make printf compile-time safe and with named arguments?](https://github.com/tip-of-the-week/cpp/blob/master/tips/185.md)\n* [Did you know about proposal to introduce constexpr ternary operator?](https://github.com/tip-of-the-week/cpp/blob/master/tips/199.md)\n* [Did you know about the proposal to add json support to the standard library?](https://github.com/tip-of-the-week/cpp/blob/master/tips/223.md)\n* [Did you know about `std::expected` proposal for error handling?](https://github.com/tip-of-the-week/cpp/blob/master/tips/192.md)\n* [Did you know that Lambdas in Unevaluated Context combined with Template Constraints (Concepts)?](https://github.com/tip-of-the-week/cpp/blob/master/tips/197.md)\n* [Did you know that Lambdas in Unevaluated Context combined with Immediately Invoked Function Expression?](https://github.com/tip-of-the-week/cpp/blob/master/tips/196.md)\n* [Did you know that Compile Time Regular Expressions support extracting matches?](https://github.com/tip-of-the-week/cpp/blob/master/tips/189.md)\n* [Did you know about C++2X `Pattern matching using is and as` proposal?](https://github.com/tip-of-the-week/cpp/blob/master/tips/243.md)\n* [Did you know that tuple can be implement just with lambdas?](https://github.com/tip-of-the-week/cpp/blob/master/tips/304.md)\n* [Did you know that with concepts you can override a type?](https://github.com/tip-of-the-week/cpp/blob/master/tips/302.md)\n* [Did you know about (rejected) proposal for homogeneous variadic function parameters?](https://github.com/tip-of-the-week/cpp/blob/master/tips/305.md)\n* [Did you know that lambda expression is guaranteed to have a unique type?](https://github.com/tip-of-the-week/cpp/blob/master/tips/290.md)\n* [Did you know what is the underlying type of NTTP string aka `fixed_string`?](https://github.com/tip-of-the-week/cpp/blob/master/tips/275.md)\n* [Did you know that lambdas are const by default but can be mutable and keep state?](https://github.com/tip-of-the-week/cpp/blob/master/tips/212.md)\n* [Did you know that concept can be passed via lambda expression?](https://github.com/tip-of-the-week/cpp/blob/master/tips/273.md)\n\n\u003e C++17\n\n* [Did you know that C++17 added Hardware interference size?](https://github.com/tip-of-the-week/cpp/blob/master/tips/369.md)\n* [Did you know that the underlying visit implementation of std::visit has changed since GCC12+, Clang15+?](https://github.com/tip-of-the-week/cpp/blob/master/tips/353.md)\n* [Did you know that run-time dispatching over type-list can be implemented many different ways?](https://github.com/tip-of-the-week/cpp/blob/master/tips/337.md)\n* [Did you know that you can simplify `boost.mp11` API with DSL?](https://github.com/tip-of-the-week/cpp/blob/master/tips/335.md)\n* [Did you about C++17 `std::index_sequence, std::make_index_sequence`?](https://github.com/tip-of-the-week/cpp/blob/master/tips/331.md)\n* [Did you know that C++17 added `std::pmr::polymorphic_allocator`?](https://github.com/tip-of-the-week/cpp/blob/master/tips/330.md)\n* [Did you know that C++17 added `std::forward_as_tuple` and `std::make_from_tuple` and what’s the differ](https://github.com/tip-of-the-week/cpp/blob/master/tips/327.md)\n* [Did you know that C++17 [[nodiscard]] attribute can be applied not only to function?](https://github.com/tip-of-the-week/cpp/blob/master/tips/293.md)\n* [Did you know that C++17 structured bindings support to custom classes can be added?](https://github.com/tip-of-the-week/cpp/blob/master/tips/277.md)\n* [Did you know about C++17 variadic using declaration?](https://github.com/tip-of-the-week/cpp/blob/master/tips/231.md)\n* [Did you know that C++17 made exception specifications be part of the type system?](https://github.com/tip-of-the-week/cpp/blob/master/tips/187.md)\n* [Did you know about C++2X proposal to add Multidimensional subscript operator?](https://github.com/tip-of-the-week/cpp/blob/master/tips/245.md)\n* [Did you know that `std::variant` become valueless by exception?](https://github.com/tip-of-the-week/cpp/blob/master/tips/227.md)\n* [Did you know about `std::rank/std::rank_v` type_trait to get the rank of the array?](https://github.com/tip-of-the-week/cpp/blob/master/tips/316.md)\n* [Did you know that constexpr is strict about undefined behaviour (UB), object lifetime, etc?](https://github.com/tip-of-the-week/cpp/blob/master/tips/323.md)\n* [Did you know about `Policy Based Design`?](https://github.com/tip-of-the-week/cpp/blob/master/tips/209.md)\n* [Did you know about python's named tuples?](https://github.com/tip-of-the-week/cpp/blob/master/tips/229.md)\n* [Did you know about typename erasure technique to reduce compilation times with templates?](https://github.com/tip-of-the-week/cpp/blob/master/tips/303.md)\n* [Did you know that mapping types to values is a simple way to transition from compile-time to run-time?](https://github.com/tip-of-the-week/cpp/blob/master/tips/213.md)\n\n\u003e C++14\n\n* [Did you know that in C++ you can generate jump tables at compile-time?](https://github.com/tip-of-the-week/cpp/blob/master/tips/332.md)\n* [Did you know that C++ allows to pass Pointer To Member Function via template parameter?](https://github.com/tip-of-the-week/cpp/blob/master/tips/329.md)\n* [Did you know about `typename erasure` technique (via Strong/Opaque Typedefs) in C++?](https://github.com/tip-of-the-week/cpp/blob/master/tips/325.md)\n* [Did you know about intrisincts to support SIMD (Single Instruction, Multiple Data) instructio](https://github.com/tip-of-the-week/cpp/blob/master/tips/320.md)\n* [Did you know DRY (Don’t Repeat Yourself) comparisons pattern?](https://github.com/tip-of-the-week/cpp/blob/master/tips/311.md)\n* [Did you know that you can implement a compile-time map with C++?](https://github.com/tip-of-the-week/cpp/blob/master/tips/204.md)\n* [Did you know about use cases for type-based `reserved` decorator?](https://github.com/tip-of-the-week/cpp/blob/master/tips/280.md)\n* [Did you know about Automatic Dependency Injection libraries such as DI?](https://github.com/tip-of-the-week/cpp/blob/master/tips/219.md)\n* [Did you know that with Automatic DI production wiring can be overwritten for integration testing?](https://github.com/tip-of-the-week/cpp/blob/master/tips/221.md)\n* [Did you know that with Automatic DI one can control how dependencies are being created?](https://github.com/tip-of-the-week/cpp/blob/master/tips/220.md)\n* [Did you know about different ways of constructor Dependency Injection?](https://github.com/tip-of-the-week/cpp/blob/master/tips/218.md)\n* [Did you know that the JSON standard does not specify that the insertion order of object elements?](https://github.com/tip-of-the-week/cpp/blob/master/tips/224.md)\n\n\u003e C++11\n* [Did you know that C++11 allows calling functions with reference-to-array parameters from an initialize](https://github.com/tip-of-the-week/cpp/blob/master/tips/319.md)\n* [Did you know that C++11 added a numeric literal operator template?](https://github.com/tip-of-the-week/cpp/blob/master/tips/246.md)\n* [Did you know the difference between fakes, stubs, mocks?](https://github.com/tip-of-the-week/cpp/blob/master/tips/217.md)\n* [Did you know that you can inject singletons to improve testability?](https://github.com/tip-of-the-week/cpp/blob/master/tips/216.md)\n* [Did you know about memoized for less types (more compile-time friendly) conditional_t?](https://github.com/tip-of-the-week/cpp/blob/master/tips/292.md)\n* [Did you know about gtest.gmock mocking framework?](https://github.com/tip-of-the-week/cpp/blob/master/tips/281.md)\n* [Did you know about methods to access the last element of variadic pack...?](https://github.com/tip-of-the-week/cpp/blob/master/tips/250.md)\n* [Did you know that different overloads can have different specifiers?](https://github.com/tip-of-the-week/cpp/blob/master/tips/232.md)\n* [Did you know that C++ allows accessing private members with friend injection?](https://github.com/tip-of-the-week/cpp/blob/master/tips/228.md)\n* [Did you know about variadic aggregate initialization?](https://github.com/tip-of-the-week/cpp/blob/master/tips/214.md)\n* [Did you know that default template arguments can be explored with template template arguments?](https://github.com/tip-of-the-week/cpp/blob/master/tips/208.md)\n\n\u003e C++98\n\n* [Did you know about `virtual` inheritance in C++?](https://github.com/tip-of-the-week/cpp/blob/master/tips/324.md)\n* [Did you know that the layout of struct fields will affect its size/alignment?](https://github.com/tip-of-the-week/cpp/blob/master/tips/308.md)\n* [Did you know that in C++ `char`, `signed char` and `unsigned char` are 3 different types?](https://github.com/tip-of-the-week/cpp/blob/master/tips/203.md)\n* [Did you know about function-try-block and that exceptions caught inside that block are implicitly](https://github.com/tip-of-the-week/cpp/blob/master/tips/234.md)\n* [Did you know that expression evaluation order is not specified?](https://github.com/tip-of-the-week/cpp/blob/master/tips/191.md)\n* [Did you know that `sizeof` operator can be used for efficient math computation?](https://github.com/tip-of-the-week/cpp/blob/master/tips/201.md)\n* [Did you know about different ways of iterating over objects?](https://github.com/tip-of-the-week/cpp/blob/master/tips/198.md)\n* [Did you know about if/else hell anti-pattern?](https://github.com/tip-of-the-week/cpp/blob/master/tips/306.md)\n* [Did you know you can pass an array by reference?](https://github.com/tip-of-the-week/cpp/blob/master/tips/288.md)\n* [Did you know that ANSI/ISO C++ conforming programs must not rely on a maximum template depth?](https://github.com/tip-of-the-week/cpp/blob/master/tips/242.md)\n* [Did you know wrapping an unqualified function name?](https://github.com/tip-of-the-week/cpp/blob/master/tips/266.md)\n* [Did you know about compiler predefined macros assosicated with the compilation date/time?](https://github.com/tip-of-the-week/cpp/blob/master/tips/244.md)\n* [Did you know about different ways of accessing C-style arrays by index?](https://github.com/tip-of-the-week/cpp/blob/master/tips/241.md)\n* [Did you know that `using-declarator` can be used to manipulate the overload set?](https://github.com/tip-of-the-week/cpp/blob/master/tips/240.md)\n\n\u003e GNU-extensions\n\n* [Did you know about `gnu::vector_size` extension?](https://github.com/tip-of-the-week/cpp/blob/master/tips/336.md)\n* [Did you know about `__builtin_dump_struct` clang-extension which can nicely print a struct?](https://github.com/tip-of-the-week/cpp/blob/master/tips/236.md)\n* [Did you know about [[gnu::cold]] function attribute to mark functions which are unlikely to be called?](https://github.com/tip-of-the-week/cpp/blob/master/tips/291.md)\n\n\u003e Circle\n\n* [Did you know that Circle supports Python's extended slice syntax for variadic packs?](https://github.com/tip-of-the-week/cpp/blob/master/tips/286.md)\n* [Did you know that Circle Meta-model allows to convert string to a type?](https://github.com/tip-of-the-week/cpp/blob/master/tips/239.md)\n* [Did you know that Circle Meta-model allows for applying `normal` STL for operations on @meta types?](https://github.com/tip-of-the-week/cpp/blob/master/tips/238.md)\n* [Did you know about C++2X proposal for the Circle Meta-model for compilation-time meta-progr](https://github.com/tip-of-the-week/cpp/blob/master/tips/237.md)\n\n---\n\n\u003e Disclaimer This repo orignates from https://quantlabfinancial.github.io/cpp_tip_of_the_week\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftip-of-the-week%2Fcpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftip-of-the-week%2Fcpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftip-of-the-week%2Fcpp/lists"}