1) Ключевое слово inline перед объявлением и определением функции служит указателем компилятору не вызывать функцию, а встроить ее код в тело программы. Это позволяет снизить расходы на вызов функции.
2) Не обязательно компилятор обработает ключевое слово inline. Он оптимизирует по своему разумению.
#include <iostream> // std::cout
inline void foo(){ // inline функция
std::cout << "foo";
}
int main(){
foo(); // Обращение с inline функцией - как с обычной
}