Есть ли способ гарантировать, что проверки nullptr выполняются из возврата функции? ⇐ C++

Программы на C++. Форум разработчиков
Anonymous
Есть ли способ гарантировать, что проверки nullptr выполняются из возврата функции?

Сообщение Anonymous »

Скажем так, у меня есть контейнер, в котором хранятся объекты, и в контейнере я храню информацию о том, действителен ли объект. У меня есть сильные ручки и слабые ручки. Если получить объект из контейнера с помощью сильного дескриптора, то существование объекта гарантировано, поскольку сильные дескрипторы сохраняют объект живым. Тогда как при слабом дескрипторе такой гарантии нет, так что объект может не существовать. Я хочу вернуть ссылку на объект, когда он получен с сильным дескриптором, и указатель, возвращаемый, когда объект получен со слабым дескриптором.
T& getObjectWithStrongHandle(int idx);
T* getObjectWithWeakHandle(int idx);

Я хочу убедиться, что указатель проверяется компилятором перед его использованием и выдачей предупреждения или, желательно, ошибки. Есть что-то вроде:
[[must_check]] T* getObjectWithWeakHandle(int idx);


Подробнее здесь: https://stackoverflow.com/questions/791 ... ion-return

Вернуться в «C++»