|
You are here |
mpark.github.io | ||
| | | | |
www.cppstories.com
|
|
| | | | | In C++11, we got a handy way to initialize various containers. Rather than using push_back() or insert() several times, you can leverage a single constructor by taking an initializer list. For example, with a vector of strings, you can write: std::vector vec { "abc", "xyz", "***" }; We can also write expressions like: for (auto x : {1, 2, 3}) cout << x << ", "; The above code samples use std::initializer_list and (some compiler support) to hold the values and pass them around. Let's understa...... | |
| | | | |
sdowney.org
|
|
| | | | | A Possible Technique constexpr bool g(int lhs, int rhs) { auto& op = partial_eq; return op.ne(lhs, rhs); } Compiler Explorer with Supporting Code A trait is defined as a template var... | |
| | | | |
www.foonathan.net
|
|
| | | | | Just like regular function parameters, template parameters can also have default parameters. For class templates, this behaves mostly just like default function arguments: if you pass fewer template arguments than required, default template arguments are used to fill the remaining places. However, for function templates, it gets more complicated as template parameters for functions can be deduced by the normal function arguments. This leads to some interesting side-effects. In particular, default argumen... | |
| | | | |
arne.me
|
|
| | | Part 1 of writing an SDK for Axiom using the Zig programming language. | ||