Цитата(BigBolt @ Jun 9 2009, 09:34)

У меня же прототип был в хидере, а реализация в сишном файле. Запихал всё в один файл и заработало...
Вы же подтвердили что так и надо делать... В доке ничего не сказано такого
Вот
чтобы не плодились очередные мифы, уточню. Компилятор должен знать, что именно инлайнить в точке вызова. То есть к тому моменту, когда он встречает вызов функции, он уже должен был просмотреть определение этой функции. Где он "видел" это определение - в заголовочном файле или в этом же сишном -
абсолютно без разницы. Если же тело находится в другом сишном файле - компилятор просто физически не может знать, какой именно код вставлять в точку встраивания. Это настолько очевидно, что даже и мысли не возникало это объяснять, и что кто-то может пытаться делать иначе. То есть если вы функцию используете только в одном с-файле, то ее тело может быть в этом же файле, не обязательно в заголовочном (это полезно в плюсах для функций-членов). Важно, чтобы это тело было доступно в момент встраивания.