From 1a0592fbcc4881d5396ad82b031adfc7f4c3b714 Mon Sep 17 00:00:00 2001 From: Bredor <40574176+freedan42x@users.noreply.github.com> Date: Mon, 18 Jul 2022 19:15:34 +0300 Subject: [PATCH] Create 6 kyu - Compile time #2 Ackermann function.cpp --- ...u - Compile time #2 Ackermann function.cpp | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 cpp/6 kyu - Compile time #2 Ackermann function.cpp diff --git a/cpp/6 kyu - Compile time #2 Ackermann function.cpp b/cpp/6 kyu - Compile time #2 Ackermann function.cpp new file mode 100644 index 0000000..d492077 --- /dev/null +++ b/cpp/6 kyu - Compile time #2 Ackermann function.cpp @@ -0,0 +1,25 @@ +typedef unsigned long long ull_t; + +template +struct ackermann +{ + enum : ull_t { value = ackermann::value>::value }; +}; + +template <> +struct ackermann<0, 0> +{ + enum : ull_t { value = 1 }; +}; + +template +struct ackermann<0, n> +{ + enum : ull_t { value = n + 1 }; +}; + +template +struct ackermann +{ + enum : ull_t { value = ackermann::value }; +};