|
You are here |
www.cppstories.com | ||
| | | | |
www.fluentcpp.com
|
|
| | | | | Variadic templates allow any number of template parameters of any type. In this article we see how to do a variadic number of parameters of the SAME type. | |
| | | | |
www.foonathan.net
|
|
| | | | | When C++11 introduced move semantics, it also added two important helper functions: std::move and std::forward. They are essential when you want to manually indicate that you no longer care about an object or need to propagate the value category in generic code. As such, Ive used them countless times in the past. However, they are functions. Plain, old, standard library functions. This is problematic for multiple reasons. | |
| | | | |
cppstories.com
|
|
| | | | | Some time ago I covered how to use custom deleters with smart pointers. The basic idea is to specify a dedicated method that will be called when a pointer is released. One logical application of custom deleters might be resource handles like files or the WinApi HANDLE type. Let's see how can we implement such thing. | |
| | | | |
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... | ||