Оптимизирует ли компилятор эту часть кода (const getter)? - PullRequest
2 голосов
/ 12 декабря 2011

У меня есть следующее определение класса:

class foo {
  private:
    bool m_active;

  public:
    const bool isActive() const // (btw do I need return type `const bool&` here?)
    {
       return m_active;
    }  
};
  1. Работает ли класс с const геттером (foo->isActive()) быстрее, чем foo->m_active (если это будетобщественности)?Я пытался посмотреть на разобранный код, но не нашел ничего интересного.

  2. Где я могу прочитать о const геттерах и установщиках?Мне нужно глубокое понимание того, где и почему используются эти методы.

1 Ответ

6 голосов
/ 12 декабря 2011

По умолчанию все функции-члены рассматриваются для встраивания функций.Это означает, что компилятор оптимизирует весь вызов функции и заменит его прямым доступом к члену.

Так что ответ - да.Компилятор оптимизирует его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...