Я экспериментировал с концепциями (я хотел дать ответ на этот вопрос на языке C++) и наткнулся на поведение std::initializer_list, которое меня озадачило. Хотя следующий код работает:
Я экспериментировал с концепциями (я хотел дать ответ на этот вопрос на языке C++) и наткнулся на поведение std::initializer_list, которое меня озадачило. Хотя следующий код работает: [code]#include #include #include #include #include #include #include
template struct iterable_sfinae { template static auto check(U*u)->decltype(u->begin()!=u->end());
template concept Number = std::numeric_limits::is_specialized;
// alternative 2 template auto findmax(C const &c) requires is_numeric_v { auto rv = std::numeric_limits::lowest(); for (auto e: c) if (e > rv) rv = e; return rv; }