Существует ли надежная проверка возврата неконстантной ссылки из константного метода получения?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Существует ли надежная проверка возврата неконстантной ссылки из константного метода получения?

Сообщение Anonymous »


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

Пример того, как это возможно:

#include #include #include #include структура PIMPL { интервал х = 0; }; структура данных { std::unique_ptr m_pimpl = std::make_unique(); // Подпись физически константна корректна, но логически константна нарушена int& func() константа { вернуть m_pimpl->x; } int& функция() { вернуть m_pimpl->x; } }; int main(int argc, char* argv[]) { Данные дата1; константные данные dat2; // ХОРОШО dat1.func() = 2; // это не должно быть возможно в API dat2.func() = 44; std::cout
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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