VS
Size: a a a
VS
DP
DP
DP
DP
VS
VS
DP
DP
DP
VS
DP
DP
DP
DP
AS
#include <type_traits>
#include <utility>
template<typename T>
inline constexpr bool is_integral_pair_v =
std::is_integral_v<typename T::first_type> &&
std::is_integral_v<typename T::second_type>;
static_assert(is_integral_pair_v<std::pair<int, int>>);
template <typename T>
concept IntegralPair = requires {
std::is_integral_v<typename T::first_type>;
std::is_integral_v<typename T::second_type>;
std::is_same_v<std::pair<typename T::first_type, typename T::second_type>, T>;
};
AS
DP
DP
AF
template <typename T>
concept IntegralPair = requires {
std::is_integral_v<typename T::first_type>;
std::is_integral_v<typename T::second_type>;
std::is_same_v<std::pair<typename T::first_type, typename T::second_type>, T>;
};