11template<
typename Type>
17template<
typename Type,
typename... Types>
20 auto v1 = std::vector<Type>{ arg, args... };
22 auto v3 = std::vector<Type>{
static_cast<Type
>(arg),
static_cast<Type
>(args)... };
23 auto v4 = std::vector<Type>{
increment(
static_cast<Type
>(arg)),
increment(
static_cast<Type
>(args) )... };
40template<
typename Type>
44template<
typename Type,
typename... Types>
47 if(
sizeof...(Types) == 0)
67template<
typename Type>
78template<
typename Type,
typename... Types>
82 if constexpr(
sizeof...(args) == 0)
98template<
typename Type>
104template<
typename Type,
typename... Types>
108 if constexpr(
sizeof...(args) == 0)
121template<
typename Type,
typename... Types>
132template<
typename Type,
typename... Types>
136 return ( first / ... / args );
147 stream <<
"( (2*3*5 / 2) / 3 ) = " << rlt <<
endl;
150template<
typename Type,
typename... Types>
166 stream <<
"( ( (2*3*5)^2 / 2^2) / 3^2 ) = " << rlt <<
endl;
169template<
typename Type,
typename... Types>
182#define VeryUglyName_SquareFoldExpression(first, ...) divide_fold_exression_with_pack_expansion(first, __VA_ARGS__)
void example_of_pack_expansion(Type arg, Types... args)
void print_out_parameter_packs(Type arg)
void example_for_template_parameter_pack_expansion(Type arg, Types... args)
#define VeryUglyName_SquareFoldExpression(first,...)
void divide_fold_exression_with_pack_expansion(Type first, Types... args)
void example_with_pack_expansion_using_fold_exression()
void example_of_if_constexpr_with_pack_expansion(Type arg, Types... args)
void example_of_if_constexpr(Type arg, Types... args)
Type divide_using_fold_exression_with_pack_expansion(Type first, Types... args)
Type divide_using_fold_exression(Type first, Types... args)
void example_fold_expression()
Stream output operators << are implemented.