Можете ли вы встроить статические функции-члены?

У меня есть статическая функция-член, которая является для меня просто синтаксическим сахаром, и я хотел бы, чтобы ее тело появилось вместо того, чтобы проходить через него движения параметров. Будет

inline static foo(int a) {return a & 0x00000040;}

быть встроенным, как если бы он был inline не будучи static?

Ответ 1

Компилятор выбирает то, что он хочет сделать, поэтому мы не можем сказать, что он будет делать. Тем не менее, static функция не будет препятствовать ее встраиванию; static функции - это в основном бесплатные функции с другим стилем именования и доступ к частным членам класса.

Ответ 2

Статический метод-член не имеет this параметра и поэтому может получить доступ только к статическим переменным-членам.

Он отличается от того, является ли метод встроенным или нет. Поэтому они независимы друг от друга.

Компилятор решает, будет ли метод быть встроенным или нет. Ваше использование ключевого слова - всего лишь подсказка для компилятора.