Ошибки шаблонов в C++ — отдельный жанр: вы ожидаете простой контракт к типу, а получаете десятки строк из глубин STL. Проблема не в компиляторе, а в том, что сами требования к типам в классических шаблонах долгое время оставались неявными. Concepts это меняют: они позволяют…
Язык C# постоянно развивается и в одной из последних версий появились расширенные шаблоны свойств, которые расширяют мощь и универсальность конструкции switch. В этой статье мы рассмотрим расширенные шаблоны свойств в C# 10.0 на практических примерах и замечаниях о том, как эффективно использовать эти расширенные шаблоны в своих проектах. Читать далее
Под «шаблонами» в контексте C++ обычно понимаются вполне конкретные языковые конструкции. Есть простые шаблоны, которые просто упрощают работу с однотипным кодом. Если у шаблона какой-то из параметров сам по себе шаблон, то это уже, можно сказать, шаблоны второго порядка и…
C++ шаблоны — мощный инструмент, но работать с ними бывает больно: многословные ошибки, путаница с типами и enable_if, который все усложняет. Concepts в C++20 появились, чтобы упростить жизнь разработчикам и сделать шаблонный код понятнее. В этой статье — разбор конкретного кейса: как с помощью концептов задать корректные ограничения на контейнеры, избежать ловушек с массивами и получить внятные ошибки от компилятора. Читать далее