Использование пользовательских атрибутов в C++20 позволяет создавать правила безопасного управления памятью без нарушения обратной совместимости. Предлагается подход, использующий атрибуты для маркировки классов, управляющих памятью (

Плагин, разработанный для Clang, анализирует код на предмет соответствия правилам безопасного использования этих классов. В частности, он проверяет, как передаются объекты, созданные с использованием
Ключевым элементом системы является использование атрибутов
Применяя подобный подход, можно выявлять ошибки, связанные с некорректным использованием указателей в C++, не меняя при этом существующий код и стандарты языка. Плагин для компилятора добавляет метки ошибок в исходный код, что облегчает их обнаружение и исправление, повышая тем самым общую надежность программного обеспечения.
VarShared, VarValue, VarGuard, VarWeak, VarAuto), и плагин компилятора для анализа их использования. 
Изображение носит иллюстративный характер
Плагин, разработанный для Clang, анализирует код на предмет соответствия правилам безопасного использования этих классов. В частности, он проверяет, как передаются объекты, созданные с использованием
shared_ptr и weak_ptr. Этот метод накладывает ограничения на копирование и обмен переменными, чтобы предотвратить утечки памяти и dangling pointers, имитируя механизмы владения и заимствования, как в языке Rust. Ключевым элементом системы является использование атрибутов
memsafe для маркировки пространств имен и классов. Это позволяет включать и отключать проверку безопасности на уровне отдельных блоков кода. Области имен, помеченные как "unsafe", исключаются из проверок, что позволяет гибко работать с низкоуровневым кодом, где требуется прямой контроль памяти. Применяя подобный подход, можно выявлять ошибки, связанные с некорректным использованием указателей в C++, не меняя при этом существующий код и стандарты языка. Плагин для компилятора добавляет метки ошибок в исходный код, что облегчает их обнаружение и исправление, повышая тем самым общую надежность программного обеспечения.