Можете ли вы встроить статические функции-члены?
У меня есть статическая функция-член, которая является для меня просто синтаксическим сахаром, и я хотел бы, чтобы ее тело появилось вместо того, чтобы проходить через него движения параметров. Будет
inline static foo(int a) {return a & 0x00000040;}
быть встроенным, как если бы он был inline
не будучи static
?
Ответы
Ответ 1
Компилятор выбирает то, что он хочет сделать, поэтому мы не можем сказать, что он будет делать. Тем не менее, static
функция не будет препятствовать ее встраиванию; static
функции - это в основном бесплатные функции с другим стилем именования и доступ к частным членам класса.
Ответ 2
Статический метод-член не имеет this
параметра и поэтому может получить доступ только к статическим переменным-членам.
Он отличается от того, является ли метод встроенным или нет. Поэтому они независимы друг от друга.
Компилятор решает, будет ли метод быть встроенным или нет. Ваше использование ключевого слова - всего лишь подсказка для компилятора.