|
You are here |
www.reedbeta.com | ||
| | | | |
entangledlogs.com
|
|
| | | | | Generic Programming: Generating part of programs Introduction Generic Programming: Programming with generic parameters to avoid unnecessary code duplication and encourage code reuse. Polymorphism is also another technique to solve code reuse Puts implicit constraints on the generic types that are to be fulfilled by concrete types. template T adder(T LHS, T RHS) { return LHS + RHS; } struct Foo { inv Val = 0; } Foo f = adder(Foo{}, Foo{}): In this code snippet, we assume that Foo meets the requirement tha... | |
| | | | |
www.foonathan.net
|
|
| | | | | You probably know that C++20 adds ranges. Finally we can write copy(container, dest) instead of copy(container.begin(), container.end(), dest)! Ranges also do a lot more. Among other things, they add a new way of specifying an iterator to the end - sentinels. | |
| | | | |
quuxplusone.github.io
|
|
| | | | | Back in early March, Lukas Böger asked on StackOverflow: "Where do standard library or compilers leverage noexcept move semantics (other than vector growth)?" So I got nerdsniped into looking at all the places libc++ tests the noexceptness of any user-defined operation. This circuitously led to my finding an absolutely massive number of corner-case bugs in libc++'s string::append member function. | |
| | | | |
hookrace.net
|
|
| | | [AI summary] The article explains Nim's metaprogramming capabilities by demonstrating the use of procs, templates, and macros to create optimizations like faster enum parsing and custom HTML DSLs. | ||