|
You are here |
www.lukas-barth.net | ||
| | | | |
blog.knatten.org
|
|
| | | | | Quiz time! Which of the following programs can you expect to not compile? For bonus points, which are required by the C++ standard to not compile? Program 1 Program 2 Program 3 In case you're not familiar with static_assert, it takes a constant boolean expression, and if it evaluates to false, you get a compilation... | |
| | | | |
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... | |
| | | | |
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
|
|
| | | In my previous blog post, weve discussed the static constexpr std::integral_constant idiom to specify the size of a range at compile-time. Unlike the standard, our (think-cells) ranges library at think-cell already supports compile-time sizes natively, so I was eager to try the idiom there and see how it works out in practice. namespace tc { template constexpr auto size(Rng&& rng); // runtime-size of a range, like std::ranges::size template requires tc::has_constexpr_size constexpr auto constexpr_size = ... | ||