#шаблони — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #шаблони, aggregated by home.social.
-
CW: Оголошення обмежень після класу/структури в C++
У
C++20зʼявились концепти й обмеження для функцій, класів/структур та інших шаблонів. Для функцій та методів вимоги можна вказувати після оголошення шаблону або після функції.template<typename T> requires ... T f() {} template<typename T> T f() requires ... {}Якщо не шаблонний метод у шаблоні класу потребує додаткових вимог їх можна вказати після оголошення методу.
template<typename T> class S { T f() requires integer<T> {} };У такому випадку клас може згенеруватись з будь-яким типом, але це метод буде присутній тільки якщо шаблонний тип відповідає вимогам.
Але іноді може знадобитись використати поточний клас у вимогах. Наприклад при
CRTP.template<typename D> class Base requires std::derived_from<D, Base> {...};На жаль зараз такого немає.
#cpp #cxx #cpp20 #concepts #constrains #requires #class #template #struct #CRTP #proposal #програмування #шаблони #вимоги #обмеження #пропозиція