diff --git a/11.cpp b/11.cpp new file mode 100644 index 0000000..c4fd7de --- /dev/null +++ b/11.cpp @@ -0,0 +1,25 @@ +#include +#include + +template +struct _IsPrime: std::conditional_t

, _IsPrime>{}; +template +struct _IsPrime: std::integral_constant{}; + +template +struct IsPrime: _IsPrime {}; +template<> +struct IsPrime<1>: std::integral_constant{}; +template<> +struct IsPrime<2>: std::integral_constant{}; + +template +struct NextPrime: std::conditional_t::value, std::integral_constant, NextPrime

> {}; + +template +struct PrimeNumber: std::conditional_t, PrimeNumber::value, curr_N + 1>>{}; + +int main() { + assert(PrimeNumber<1>{} == 2); + assert(PrimeNumber<9>{} == 23); +}