Pull to refresh
6
0.1

Разработчик ПО

Send message

Обнаружение наличия функциональности в C++ на этапе компиляции

Reading time10 min
Views5.4K

Иногда, при реализации очередной "шаблонной магии" очень хочется на этапе компиляции иметь сакральное знание о том, а если у типа нужный метод, чтобы его вызвать или нет?

Хорошо, если есть поддержка концептов или рефлексии. А что делать, если их ещё нет, или они не в полной мере поддерживаются?

В этой статье хотелось бы кратко рассмотреть особенности применения известного механизма обнаружения наличия функциональности у используемых типов данных на этапе компиляции.

Читать далее
Total votes 9: ↑8 and ↓1+10
Comments6

Добавляем дополнительные особенности реализации на C++ с помощью «умных» оберток

Reading time10 min
Views7.8K

Представляю сообществу библиотеку feature из состава, разрабатываемых мной библиотек под общим названием ScL. Сам набор библиотенк ScL систематизирует достаточно скромный набор реализаций и подходов, которые на мой взгляд могут упростить процесс разработки программного обеспечения на С++.

Инструменты библиотеки feature позволяют наделить экземпляры объектов любого типа свойствами, которых у них изначально не существует. К таким свойствам можно отнести, например, ленивые вычисления (implicit shared и другое), потокобезопасность, выбор способа размещения объекта "по месту" или в "куче" и т.д.

Все перечисленные свойства добавляются с помощью реализации механизма "умных" оберток, базовый набор которых представлен в библиотеке feature, и может быть легко расширен любыми пользовательскими решениями.

Хотите узнать как? Прошу под кат.
Total votes 9: ↑8 and ↓1+8
Comments19

Information

Rating
3,108-th
Registered
Activity

Specialization

Specialist
Lead
From 5,000 €