У меня тут возник один вопрос, на который из моих знакомы уверенно так никто и не ответил...
Если объявить функцию inline в хедере, а реалезовать ее в cpp файле, будет ли функции после компиляции inline или компилятор сделает ее static?
Вопрос возник из таких размышлений, допустим у меня есть три файла:
finline.h
---------------
inline int f();
finline.cpp
---------------
#include "finline.h"
inline int f()
{
return <чего не будь>;
}
main.cpp
---------------
#include "finline.h"
int a = f();
inline функция прямой подстановки, допустим finline.cpp скомпилировался в объектник первым, при компиляции main.cpp компилятор подставит finline.h в main.cpp и скомпилирует main.obj. Но дело в том, что тело f() находится в finline.cpp, который уже скомпилирован и соотведственно по логике вещей никакой подстановки произойти не должо и линкер просто должен подставить адрес f() при линковке. Из этого следует вопрос inline должна быть полностью реализованна в хедере?