chsvlib
chsv helper source code
chsvmath\is_satisfied_by_all_make_Nary.cpp

Demonstrates usage of Chusov::Math::is_satisfied_by_all, Chusov::Math::is_satisfied_by_one, and Chusov::Math::make_Nary_type_template.

#include "chsvmath.h"
#include <iostream>
#include <iomanip>
#include <tuple>
#include <utility>
int main(int, char**)
{
std::cout << "is_satisfied_by_one<std::is_integral, int, short, unsigned, char>::value = " << std::boolalpha << is_satisfied_by_one<std::is_integral, int, short, unsigned, char>::value << "\n"; // true
std::cout << "is_satisfied_by_one<std::is_integral, int, short, unsigned, char, float>::value = " << std::boolalpha << is_satisfied_by_one<std::is_integral, int, short, unsigned, char, float>::value << "\n"; //true
std::cout << "is_satisfied_by_all<std::is_integral, int, short, unsigned, char>::value = " << std::boolalpha << is_satisfied_by_all<std::is_integral, int, short, unsigned, char>::value << "\n"; //true
std::cout << "is_satisfied_by_all<std::is_integral, int, short, unsigned, char, float>::value = " << std::boolalpha << is_satisfied_by_all<std::is_integral, int, short, unsigned, char, float>::value << "\n"; //false
std::cout << "is_satisfied_by_all<std::is_integral, float, double, long double>::value = " << std::boolalpha << is_satisfied_by_all<std::is_integral, float, double, long double>::value << "\n"; //false
std::cout << "is_satisfied_by_one<std::is_integral, float, double, long double>::value = " << std::boolalpha << is_satisfied_by_one<std::is_integral, float, double, long double>::value << "\n"; //false
std::cout << "is_satisfied_by_one<make_Nary_type_template<1, 0, std::is_same, int>::result, int, int>::value = "
<< std::boolalpha << is_satisfied_by_one<make_Nary_type_template<1, 0, std::is_same, int>::result, int, int>::value << "\n"; //true
std::cout << "is_satisfied_by_one<make_Nary_type_template<0, 1, std::is_constructible, std::pair<int, int>>::result, std::tuple<int, int>, int>::value = "
<< std::boolalpha << is_satisfied_by_one<make_Nary_type_template<0, 1, std::is_constructible, std::pair<int, int>>::result, std::tuple<int, int>, int>::value << "\n"; //true
std::cout << "is_satisfied_by_all<make_Nary_type_template<0, 1, std::is_constructible, std::pair<int, int>>::result, std::tuple<int, int>, int>::value = "
<< std::boolalpha << is_satisfied_by_all<make_Nary_type_template<0, 1, std::is_constructible, std::pair<int, int>>::result, std::tuple<int, int>, int>::value << "\n"; //false
return 0;
}
mathematical and arithmetical functions mostly over integer operands.
Checks if every type in a pack satisfies a specified compile-time predicate.
Definition: chsvmath.h:398
Checks if at least one type in a pack satisfies a specified compile-time predicate.
Definition: chsvmath.h:420
Produces a new variadic template which accept a specified number of type parameters.
Definition: chsvmath.h:299