|
You are here |
www.bfilipek.com | ||
| | | | |
www.cppstories.com
|
|
| | | | | Variadic Templates from C++11 is probably not a feature that you use on a daily basis. But recently, I've come across one refactoring example where I've decided to give a try and apply variadics. Intro When I was doing some work in some old UI code I've noticed several similar lines of code that looked like that: | |
| | | | |
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. | |
| | | | |
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. | |
| | | | |
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... | ||