 Fold expressions exist in C++ since C++17 and significantly affect how we treat variadic templates. Back in the day, I wrote about fold-expressions as part of the metaprogramming series, but today we will explore the extreme cases of fold-expression usages.
Fold expressions exist in C++ since C++17 and significantly affect how we treat variadic templates. Back in the day, I wrote about fold-expressions as part of the metaprogramming series, but today we will explore the extreme cases of fold-expression usages.
Into the Extreme – Fold-Expressions
by Coral Kashri
From the article:
In the case of a unary fold (fold expression without initialization), this case is legal for 3 types of operators:
&&,||, and,.Operator &&
template <typename ...Args> auto and_cond(Args... args) { return (args && ...); }In case of empty parameters (for the call
and_cond()), the function will returntrue. A reasonable explanation for this decision might be that&&operator requires there won’t be any part that evaluatesfalse. In this case, there are no parts at all, so none of the parts evaluatesfalse, and therefore the result should be...

Add a Comment
Comments are closed.