На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
  
> Выполнение рекомендаций PVS-Studio о константности ссылок
    В программе от PVS-Studio получаю сообщение:
    ExpandedWrap disabled
      D:\MyProgramming\cppProcFiles\cppFun.cpp (25): error V813: Decreased performance. The 'sMes' argument should probably be rendered as a constant reference.
      D:\MyProgramming\cppProcFiles\cppFun.cpp (186): error V813: Decreased performance. The 'vsFullname', 'vsFilenameNum' arguments should probably be rendered as constant references.
    Как я понимаю, нужно сделать константные ссылки на аргументы фукнций. Я читал в книгах о константных ссылках, но так и не понял, как на практике действовать: куда ставить * (до или после описания типа переменной) и куда ставить &. Поясните, пожалуйста, на примере этой программы, как удовлетворить требованиям PVS-Studio. Архив с программой и тестовыми директориями прикрепил.
    Прикреплённый файлПрикреплённый файлcppProcFilesTest.zip (8,63 Кбайт, скачиваний: 41)
      * это указатель. Это другое понятие.

      DisplayMessage(string sMes, bool error)
      DisplayMessage(const string& sMes, bool error)

      void CopyFileToDir(vector<string> vsFullname, vector<string> vsFilename, vector<string> vsFilenameNum, char* argv[])
      void CopyFileToDir(const vector<string>& vsFullname, const vector<string>& vsFilename, const vector<string>& vsFilenameNum, char* argv[])
      А vsFilename внутри функции вообще не используется, этот параметр вообще лишний.

      У PVS это предупреждение описано вполне понятным языком. Вместо копирования всего объекта в новый вы просто передаете ссылку на оригинальный объект с модификатором const, т.е. гововорите компилятору что объект внутри функции меняться не будет.
      https://pvs-studio.ru/ru/docs/warnings/v813/
        Спасибо! Действительно, из описания все понятно.
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0194 ]   [ 18 queries used ]   [ Generated: 4.10.24, 14:31 GMT ]