__declspec(noinline)
для VC ++. В отличие от справочной страницы, это работает для автономных функций, и я не думаю, что когда-либо использовал ее для функции-члена. Вы можете - хотя и заметьте, что у меня никогда не было - захотите поиграть и с флагами оптимизации, так что для встраивания рассматриваются только inline
функции, хотя, конечно, это имеет глобальный эффект, и это может быть не тем, что вы хотите .
__attribute__((noinline))
для gcc (и ряда менее распространенных компиляторов, которые поддерживают синтаксис атрибута gcc). Я должен признать, я не думаю, что когда-либо использовал это на самом деле, но, похоже, оно есть.
(Конечно, эти два стиля аннотации идут в разных местах, поэтому немного неудобно создавать код, приемлемый для обоих.)
Я не уверен, как они взаимодействуют с ключевым словом inline
C ++; Я использовал их только при отладке (когда я просто хочу, чтобы определенная не встроенная функция оставалась не встроенной после оптимизации) или при проверке сгенерированного кода (и я запутался, потому что вставляется случайный материал).