tests for sum

This commit is contained in:
Pagwin 2024-12-11 13:44:52 -05:00
parent 294b61072e
commit fbee14508d
No known key found for this signature in database
GPG key ID: 81137023740CA260
2 changed files with 10 additions and 2 deletions

1
.gitignore vendored
View file

@ -1,4 +1,5 @@
i i
s s
t t
a.out
.clangd .clangd

11
sum.cpp
View file

@ -1,7 +1,14 @@
#include <iostream> #include <cassert>
template <typename T> auto sum(T final) { return final; } template <typename T> auto sum(T final) { return final; }
template <typename T, typename... Ts> auto sum(T first, Ts... rem) { template <typename T, typename... Ts> auto sum(T first, Ts... rem) {
return first + sum<Ts...>(rem...); return first + sum<Ts...>(rem...);
} }
int main(void) { std::cout << sum<double, int, int, int>(1.5, 2, 3, 10); } int main(void) {
bool dummy = sum<double, int, int, int>(1.5, 2, 3, 10) == 16.5;
assert(dummy);
dummy = sum<int, int, int, int, int, int, int>(1, 5, 7, 8, 2, 3, 4) == 30;
assert(dummy);
dummy = sum<double>(1.5, 1, 2, 3.5) == 8.0;
assert(dummy);
}