Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <array>
- #include <iostream>
- #include <exception>
- constexpr int requires_positive(int num) {
- return (num <= 0) ? throw std::exception() : num;
- }
- constexpr int factorial(int num) {
- return (num > 1) ? num * factorial(num - 1) : 1;
- }
- constexpr int arrangement(int k, int n) {
- return requires_positive(k),
- requires_positive(n),
- factorial(n) / factorial(n - k);
- }
- int main(int argc, char** argv) {
- //demonstration
- std::array<char, arrangement(1, 2)> good_array;
- //error demonstration
- std::array<char, arrangement(0, 1)> bad_array_1;
- //one more error demonstration
- std::array<char, arrangement(-1, 1)> bad_array_2;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement